tcp: remove prequeue support
prequeue is a tcp receive optimization that moves part of rx processing from bh to process context. This only works if the socket being processed belongs to a process that is blocked in recv on that socket. In practice, this doesn't happen anymore that often because nowadays servers tend to use an event driven (epoll) model. Even normal client applications (web browsers) commonly use many tcp connections in parallel. This has measureable impact only in netperf (which uses plain recv and thus allows prequeue use) from host to locally running vm (~4%), however, there were no changes when using netperf between two physical hosts with ixgbe interfaces. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
764646b08d
commit
e7942d0633
@@ -1244,17 +1244,6 @@ static inline bool tcp_checksum_complete(struct sk_buff *skb)
|
||||
__tcp_checksum_complete(skb);
|
||||
}
|
||||
|
||||
/* Prequeue for VJ style copy to user, combined with checksumming. */
|
||||
|
||||
static inline void tcp_prequeue_init(struct tcp_sock *tp)
|
||||
{
|
||||
tp->ucopy.task = NULL;
|
||||
tp->ucopy.len = 0;
|
||||
tp->ucopy.memory = 0;
|
||||
skb_queue_head_init(&tp->ucopy.prequeue);
|
||||
}
|
||||
|
||||
bool tcp_prequeue(struct sock *sk, struct sk_buff *skb);
|
||||
bool tcp_add_backlog(struct sock *sk, struct sk_buff *skb);
|
||||
int tcp_filter(struct sock *sk, struct sk_buff *skb);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user