Re: [rfc/rft][patch] should use scheduler sync hint intcp_prequeue()?

From: David Miller
Date: Wed Mar 03 2010 - 09:05:17 EST


From: Eric Dumazet <eric.dumazet@xxxxxxxxx>
Date: Tue, 02 Mar 2010 12:27:53 +0100

> Le mardi 02 mars 2010 à 10:41 +0100, Mike Galbraith a écrit :
>> 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,
>>
...
> Ingo probably can answer to this question, since he changed
> sock_def_readable() (and others) in commit 6f3d09291b498299
> I suspect he missed tcp_prequeue() case, maybe not...

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?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/