RE: [PATCH v2 3/5] ASoC: rt5640: Fix sleep in atomic context

From: David Laight
Date: Thu Jun 29 2023 - 06:22:40 EST


From: Mark Brown
> Sent: 29 June 2023 11:11
>
> On Thu, Jun 29, 2023 at 08:38:09AM +0000, David Laight wrote:
> > From: Sameer Pujar
>
> > > Following prints are observed while testing audio on Jetson AGX Orin which
> > > has onboard RT5640 audio codec:
> > >
> > > BUG: sleeping function called from invalid context at kernel/workqueue.c:3027
> > > in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 0, name: swapper/0
>
> > My 'gut feel' is that this will just move the problem elsewhere.
>
> > If the ISR is responsible for adding audio buffers (etc) then it is
> > also not unlikely that the scheduling delays in running a threaded ISR
> > will cause audio glitches if the system is busy.
>
> What makes you think this is anything to do with audio glitches? The
> bug is literally what is described, it is not valid to sleep in atomic
> contexts and if we ever actually try things are likely to go badly.

What I mean is that deferring the ISR to process context
is likely to generate audio glitches on a busy system.

I realise that sleeping in an ISR goes badly wrong.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)