Re: [PATCH 5/5] xHCI: assign devices to different interrupters

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 17, 2011 at 03:49:15PM +0800, Xu, Andiry wrote:
> I did this simply because xHCI driver uses MSI-X as default since
> 2.6.36,
> but only supports one interrupt vector, and other vectors allocated
> never have interrupts. To fully utilize the MSI-X vectors, interrupters
> are needed. 

Sure, but if there's no performance gain to multiple event rings, we
would just be adding complexity (opening the potential for more bugs).
Just because an optional feature is there in the spec doesn't mean we
need to use it.  MSI and MSI-X are still useful by itself to get the
xHCI host off the shared legacy IRQs.  (Although if we only use one
event ring, we really should only be allocating one MSI-X vector.)

> What about the mechanism below?
> 
> Interrupter 0: IMODI = 160
> 	Assign all devices' ctrl transfer to it
> Interrupter 1-n: IMODI = 0 (interrupt ASAP)
> 	Assign devices' bulk/intr/isoc transfers.
> 
> As Alan pointed out, all other transfers should have latency as small as
> possible.
> 
> I've done some tests with USB3.0 storage device. IMODI=0 does help
> improve the performance, though not significantly.

Was that a BoT device or a UAS device?  Could you share your performance
test and numbers?

If there's not much performance gain, the question becomes, why not just
set IMODI=0 for the one event ring and put all transfers on it?  Would
there be a performance hit to any other devices in the system if we just
kept one event ring?  Control transfers really don't happen all that
often.

I'm concerned that even if we do run tests with multiple event rings
with UAS, we really won't see any gains because the xhci->lock
essentially makes the whole system serialized.  It would be interesting
to run perf on the xHCI driver with multiple event rings and see if
there is any serious lock contention, or the driver needs other
performance improvements.

If there is serious lock contention with multiple event rings, then
there probably needs to be further work done to move to a different
locking scheme before we're going to see any really good performance
gain out of multiple event rings.

But all of this is just speculation until I see some performance
numbers and perf charts. :)

Sarah Sharp
--
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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux