diff mbox

[rfc/rft] should use scheduler sync hint in tcp_prequeue()?

Message ID 1267627610.6264.21.camel@marge.simson.net
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Mike Galbraith March 3, 2010, 2:46 p.m. UTC
On Wed, 2010-03-03 at 06:05 -0800, David Miller wrote:

> It definitely looks like an oversight to me and we should add
> be using wake_up_interruptible_sync_poll() in tcp_prequeue()
> as above.
> 
> Ingo?

Implied ack from network maintainer implies ship it to me.

net: add scheduler sync hint to tcp_prequeue().

Decreases the odds wakee will suffer from frequent cache misses.

Signed-off-by: Mike Galbraith <efault@gmx.de>
Cc: David Miller <davem@davemloft.net>
LKML-Reference: <new-submission>



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

David Miller March 4, 2010, 8:41 a.m. UTC | #1
From: Mike Galbraith <efault@gmx.de>
Date: Wed, 03 Mar 2010 15:46:50 +0100

> On Wed, 2010-03-03 at 06:05 -0800, David Miller wrote:
> 
>> It definitely looks like an oversight to me and we should add
>> be using wake_up_interruptible_sync_poll() in tcp_prequeue()
>> as above.
>> 
>> Ingo?
> 
> Implied ack from network maintainer implies ship it to me.
> 
> net: add scheduler sync hint to tcp_prequeue().
> 
> Decreases the odds wakee will suffer from frequent cache misses.
> 
> Signed-off-by: Mike Galbraith <efault@gmx.de>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/net/tcp.h b/include/net/tcp.h
index 34f5cc2..ba3fc64 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -939,7 +939,7 @@  static inline int tcp_prequeue(struct sock *sk, struct sk_buff *skb)
 
 		tp->ucopy.memory = 0;
 	} else if (skb_queue_len(&tp->ucopy.prequeue) == 1) {
-		wake_up_interruptible_poll(sk->sk_sleep,
+		wake_up_interruptible_sync_poll(sk->sk_sleep,
 					   POLLIN | POLLRDNORM | POLLRDBAND);
 		if (!inet_csk_ack_scheduled(sk))
 			inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK,