> -----Original Message----- > From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb- > owner@xxxxxxxxxxxxxxx] On Behalf Of Matthew Wilcox > Sent: Wednesday, June 01, 2011 5:40 AM > To: linux-usb@xxxxxxxxxxxxxxx > Subject: [PATCHSET] Prepare xHCI for multiple event rings > > > I've seen the mails from Andiry in February which add support for > multiple event rings. The approach is very unusual in that every > interrupt processes all event rings. This is bad for NUMA, as you only > want to process the event ring that's local to your node. > > The patches I'm sending don't go as far as actually creating multiple > event rings, but they do restructure the xhci driver so that adding > multiple event rings should be quite straightforward. And the last > patch makes the MSI interrupt handler much lighter-weight. > > The approach I've taken is to define an interrupter data structure. > Initially I defined an xhci_interrupter data structure, but it turned > out > to be a superset of the xhci_erst data structure, so I started over and > this time just moved pieces to the xhci_erst data structure as > necessary. > > There's a lot more work to be done to make the xhci driver NUMA- > friendly. > For example, we might want a per-erst lock that we can use instead of > the > per-hcd lock for things like queueing TRBs. But I'm currently working > on my laptop while travelling, and it's not NUMA :-) > Thanks for the patchset! This reduces the register and interrupter check and makes the multiple interrupters implementation much easier - just allocate multiple ERSTs will do. I'll rebase the multiple interrupters patchset on this. Thanks, Andiry -- 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