Re: [PATCH -next] ipc: use GFP_ATOMIC under spin lock

From: Andrew Morton
Date: Tue Apr 28 2020 - 20:14:34 EST


On Tue, 28 Apr 2020 04:14:03 -0700 Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:

> On Tue, Apr 28, 2020 at 03:47:36AM +0000, Wei Yongjun wrote:
> > The function ipc_id_alloc() is called from ipc_addid(), in which
> > a spin lock is held, so we should use GFP_ATOMIC instead.
> >
> > Fixes: de5738d1c364 ("ipc: convert ipcs_idr to XArray")
> > Signed-off-by: Wei Yongjun <weiyongjun1@xxxxxxxxxx>
>
> I see why you think that, but it's not true. Yes, we hold a spinlock, but
> the spinlock is in an object which is not reachable from any other CPU.
> So it's not possible to deadlock.

um, then why are we taking it?

> This probably confuses all kinds
> of automated checkers,

A big fat code comment would reduce the email traffic?

> and I should probably rewrite the code to not
> acquire the new spinlock until we're already holding the xa_lock.
>