Re: [PATCH] USB: ehci: drop workaround for forced irq threading

From: Sebastian Andrzej Siewior
Date: Mon Mar 22 2021 - 13:00:13 EST


On 2021-03-22 12:42:00 [-0400], Alan Stern wrote:
> What happens on RT systems? Are they smart enough to avoid the whole
> problem by enabling interrupts during _all_ callbacks?

tl;dr: Yes.

The referenced commit (id 81e2073c175b) disables interrupts only on !RT
configs so for RT everything remains unchanged (the backports are
already adjusted for the old stable trees to use the proper CONFIG_* for
enabled RT).

All hrtimer callbacks run as HRTIMER_MODE_SOFT by default. The
HRTIMER_MODE_HARD ones (which expire in HARDIRQ context) were audited /
explicitly enabled.
The same goes irq_work.
The printk code is different compared to mainline. A printk() on RT in
HARDIRQ context is printed once the HARDIRQ context is left. So the
serial/console/… driver never gets a chance to acquire its lock in
hardirq context.

An interrupt handler which is not forced-threaded must be marked as such
and must not use any spinlock_t based locking. lockdep/might_sleep
complain here already.

> Alan Stern

Sebastian