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

From: Ingo Molnar
Date: Wed Mar 03 2010 - 22:03:18 EST



* David Miller <davem@xxxxxxxxxxxxx> wrote:

> 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?

Yeah. I remember that patch, it was minimalistic, based on the workload i
could trigger back then.

Thanks,

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/