Re: [PATCH 2/3] usb: dwc2: host: Giveback URB in tasklet context

From: Alan Stern
Date: Thu Nov 05 2015 - 10:19:07 EST


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

--
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/