On Fri, 15 Jun 2018, Mikulas Patocka wrote: > I think the major problem (in the upstream kernel) with softirq latency is > this: > static inline void invoke_softirq(void) > { > if (ksoftirqd_running()) > return; > > It means that if any piece of code kicks ksoftirq, no tasklets are > processed in the irq context at all. > > So, the ehci callbacks will be offloaded to ksoftirqd (no matter how small > they are) and this causes audio skipping. Could this be changed, so that > it processes tasklets submitted with "tasklet_hi_schedule" in irq context > even if ksoftirqd is running? That's a great question. Basically you're asking to have the HI softirq always handled in the bottom half, never in ksoftirqd, right? Or maybe to have more than one softirq thread, to handle different softirq levels, so that they can be assigned differing priorities. > It's not easy - __do_softirq lacks any locking - so it can't run > concurrently in process context and in irq context. I have no idea. Maybe someone with a better understanding of this part of the kernel can help. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html