On Mon, Mar 16, 2020 at 09:15:43AM -0700, Keith Busch wrote: > I'm not sure why the hard-irq context is even setting the thread running > flag while it can still exit without handling anything. Shouldn't it leave > the flag cleared until knows it's actually going to do something? No, ist_running must be set to true before the invocation of atomic_xchg(&ctrl->pending_events, 0). There's a time window between the atomic_xchg() and actually turning off the slot when pending_events is 0. Previously we only checked in the sysfs functions that pending_events is 0. That was insufficient as we risked returning prematurely from the sysfs functions. The point of ist_running is to prevent that. Thanks, Lukas