Re: [PATCH 4/4] aio: allow direct aio poll comletions for keyed wakeups

From: Andrew Morton
Date: Tue Aug 07 2018 - 12:04:46 EST


On Tue, 7 Aug 2018 09:25:55 +0200 Christoph Hellwig <hch@xxxxxx> wrote:

> On Mon, Aug 06, 2018 at 03:27:05PM -0700, Andrew Morton wrote:
> > On Mon, 6 Aug 2018 10:30:58 +0200 Christoph Hellwig <hch@xxxxxx> wrote:
> >
> > > If we get a keyed wakeup for a aio poll waitqueue and wake can acquire the
> > > ctx_lock without spinning we can just complete the iocb straight from the
> > > wakeup callback to avoid a context switch.
> >
> > Why do we try to avoid spinning on the lock?
>
> Because we are called with the lock on the waitqueue called, which
> nests inside it.

Ah.

> > > + /* try to complete the iocb inline if we can: */
> >
> > ie, this comment explains 'what" but not "why".
> >
> > (There's a typo in Subject:, btw)
>
> Because it is faster obviously. I can update the comment.

I meant the comment could explain why it's a trylock instead of a
spin_lock().