On Tue 06 Aug 2024 at 08:50, Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote: > On 2024-08-05 18:07:28 [+0200], Jerome Brunet wrote: >> Hi Sebastian, > Hi Jerome, > >> Thanks a lot for taking the time to dig into the driver specifics. >> The IRQ handler is actually not awfully critical in this case. The HW >> will continue to run regardless of the IRQ being acked or not >> >> The purpose of the handler is mainly to let Alsa know that 1 (or more) >> period is ready. If alsa is too slow to react, and the buffer allows >> just a few periods, the HW may under/overflow the buffer. >> >> IRQF_ONESHOT is fine because snd_pcm_period_elapsed() 'notifies' >> all past periods, not just one. The irq handler does not need to >> run again until this function has been called. It also helps if the >> period is ridiculously small, to try to reduce the number of IRQs. > > IRQF_ONESHOT is used to disable to keep the IRQ line disabled (after the > primary handler) while the threaded handler is running. This implies > that the primary handler must not be threaded under PREEMPT_RT. > … This is the point I was missing. It is clear now. Thanks a lot. I have tweaked #1 and added a few tags but the gist remains the same. I was going to add you under 'Suggested-by' but maybe putting you as the actual Author would be more appropriate. What do you prefer ?