mbox series

[v2,00/10] Multi-segment Event Ring support for XHCI

Message ID cover.1692892942.git.lukas@wunner.de (mailing list archive)
Headers show
Series Multi-segment Event Ring support for XHCI | expand

Message

Lukas Wunner Aug. 24, 2023, 4:15 p.m. UTC
Enlarge the XHCI Event Ring to cope with high load situations
by allowing more than one segment.

This second iteration seeks to address all of Mathias' review feedback on v1:

* Patch [01/10]:
  Use ERST_DESI_MASK instead of ERST_PTR_MASK when constructing the new
  ERDP value to avoid carrying over a set EHB bit.

* Patch [04/10]:
  Only use up to 2 Event Ring segments by default (instead of 8).

* Patch [05/10]:
  New patch to adjust segment numbers after ring expansion.

* Patch [08/10]:
  New patch to clean up ERST_PTR_MASK inversion.

Several other issues caught my eye and I'm including fixes and cleanups
for those as well.

Link to v1:
https://lore.kernel.org/all/cover.1692085657.git.lukas@wunner.de/


Jonathan Bell (1):
  xhci: Use more than one Event Ring segment

Lukas Wunner (9):
  xhci: Clear EHB bit only at end of interrupt handler
  xhci: Preserve RsvdP bits in ERSTBA register correctly
  xhci: Set DESI bits in ERDP register correctly
  xhci: Adjust segment numbers after ring expansion
  xhci: Update last segment pointer after Event Ring expansion
  xhci: Expose segment numbers in debugfs
  xhci: Clean up ERST_PTR_MASK inversion
  xhci: Clean up stale comment on ERST_SIZE macro
  xhci: Clean up xhci_{alloc,free}_erst() declarations

 drivers/usb/host/xhci-debugfs.c |  2 +-
 drivers/usb/host/xhci-mem.c     | 68 ++++++++++++++++++---------------
 drivers/usb/host/xhci-ring.c    | 17 +++++----
 drivers/usb/host/xhci.c         |  2 +-
 drivers/usb/host/xhci.h         | 18 +++------
 5 files changed, 53 insertions(+), 54 deletions(-)

Comments

Mathias Nyman Sept. 1, 2023, 12:40 p.m. UTC | #1
On 24.8.2023 19.15, Lukas Wunner wrote:
> Enlarge the XHCI Event Ring to cope with high load situations
> by allowing more than one segment.
> 
> This second iteration seeks to address all of Mathias' review feedback on v1:
> 
> * Patch [01/10]:
>    Use ERST_DESI_MASK instead of ERST_PTR_MASK when constructing the new
>    ERDP value to avoid carrying over a set EHB bit.
> 
> * Patch [04/10]:
>    Only use up to 2 Event Ring segments by default (instead of 8).
> 
> * Patch [05/10]:
>    New patch to adjust segment numbers after ring expansion.
> 
> * Patch [08/10]:
>    New patch to clean up ERST_PTR_MASK inversion.
> 
> Several other issues caught my eye and I'm including fixes and cleanups
> for those as well.
> 

Thanks for working on this.

Tested this series with a forced transfer ring expansion and all worked well.

I'll add this internally first and then later send it forward after the merge window.

Thanks
Mathias