Re: [PATCH 0/5] V2 usb console improvements series

From: Jason Wessel
Date: Wed Mar 17 2010 - 10:47:00 EST


On 03/17/2010 09:30 AM, Alan Stern wrote:
> On Tue, 16 Mar 2010, Jason Wessel wrote:
>
>
>> Part of having the console stable requires that usb sysrq handler get
>> executed in a tasklet. The hcd device lock is always held while the
>> driver call backs are executed. The means you cannot get the sysrq
>> printk's out to the usb console device after the in_flight urb queue
>> is filled.
>>
>
> Either I don't understand this comment properly or else it is simply
> wrong. HCDs do not continue to hold their locks when handing completed
> URBs back to drivers. The giveback call occurs with interrupts
> disabled, but no locks are held.
>
>

The call back from the urb processing holds a lock. The sysrq is
invoked from that context, which will do a whole lot of printk()
(sysrq-t for example). The problem is that writes will queue for a bit
and then cannot get drained because the hcd lock is not available.
Using a tasklet seemed like the obvious choice to move the sysrq
processing to a context where the hcd lock is not likely to be in use.

> Does this mean one of the patches in your series can be simplified?
>

I will further simplify if you have some recommendations.

Thanks,
Jason.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/