[PATCH 2/3] usb: dwc2: host: Giveback URB in tasklet context
Alan Stern
stern at rowland.harvard.edu
Thu Nov 5 07:19:00 PST 2015
On Wed, 4 Nov 2015, Doug Anderson wrote:
> In the ChromeOS gerrit
> <https://chromium-review.googlesource.com/#/c/310583/> Julius Werner
> points out that for EHCI it was good to take the optimization from
> commit 9118f9eb4f1e ("USB: EHCI: improve interrupt qh unlink") before
> this one. I'm still trying to learn USB / dwc2 so it's unclear to me
> whether we also need a similar change before landing.
>
> I'll see if I can do some investigation about this and also some
> benchmarking before and after. Certainly profiling the interrupt
> handler itself showed a huge improvement, but I'd hate to see a
> regression elsewhere.
>
> If anyone else knows better than I, please speak up! :)
This is a matter of both efficiency and correctness. Giving back URBs
in a tasklet is not a simple change.
Have you read the kerneldoc for usb_submit_urb() in
drivers/usb/core/urb.c? The portion about "Reserved Bandwidth
Transfers" is highly relevant. I don't know how dwc2 goes about
reserving bandwidth for periodic transfers, but if it relies on the
endpoint queue being non-empty to maintain a reservation then it will
be affected by this change.
Alan Stern
More information about the Linux-rockchip
mailing list