[PATCH 0/7 um: IRQ handling cleanups

Johannes Berg johannes at sipsolutions.net
Tue Nov 24 16:11:30 EST 2020


On Mon, 2020-11-23 at 20:56 +0100, Johannes Berg wrote:
> The IRQ code seems very confusing, but now that I've had to dig
> through it, I've come up with a number of cleanups. Really what
> I wanted was suspend/resume support (next series), but this is
> all necessary for that, in particular for virtio resume support
> (still WIP).

Btw.

It seems to me that we really ought to implement IRQ masking and
unmasking correctly. I've run into a number of scenarios now where we
can never return from sigio_handler() because an FD is readable (or
writeable) and thus we got SIGIO, but then it doesn't *stop* being
readable (writeable) because the actual interrupt handler isn't run. I
hit this in suspend, but perhaps there are other reasons why we might
never get to the interrupt handler (irq_may_run())?

In any case, I did solve these issues by just doing the restore of
interrupts late enough for now, and probably always munging the epoll
mask is too expensive ... but it's definitely a caveat here.

johannes




More information about the linux-um mailing list