[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080617.144041.38758483.davem@davemloft.net>
Date: Tue, 17 Jun 2008 14:40:41 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: pmullaney@...ell.com
Cc: herbert@...dor.apana.org.au, GHaskins.WAL-1.WALTHAM@...ell.com,
chuck.lever@...cle.com, netdev@...r.kernel.org
Subject: Re: Killing sk->sk_callback_lock
From: "Patrick Mullaney" <pmullaney@...ell.com>
Date: Tue, 17 Jun 2008 07:38:29 -0600
> >>> On Mon, Jun 16, 2008 at 9:53 PM, in message
> <20080616.185328.85842051.davem@...emloft.net>, David Miller
> <davem@...emloft.net> wrote:
> > Once the task is woken up the first time, future calls to
> > these callback functions should do nothing other than take
> > the sk_callback_lock and test some state.
> >
> > Since the task is awake already, wakeups should be bypassed
> > or at worst be a nop.
>
> The task can go directly back into a wait. This will effectively yield 2
> wake ups per udp request-response.
I made the mistake of assuming that a high performance threaded
networking application would use non-blocking operations and
select/poll/epoll, which is clearly not the case here.
It's blocking in a recv() and this is woken up by a write space
extraneous wakeup.
It does need to be fixed and I'll look at the most recent patch
submission and also try to imagine some other ideas. Herbert
mentioned creating a seperate wait queue for write space wakeups.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists