High-priority softirqs [was: [PATCH] usb: don't offload isochronous urb completions to ksoftirq]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux