Re: About interrupters implementation

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

 



On Wed, Feb 16, 2011 at 05:59:14PM +0800, Xu, Andiry wrote:
> Hi Sarah,
> 
> As you know xHCI now uses MSI-X by default and has multiple vectors.
> However, it only has one ERST and event ring now and only uses the first
> MSI-X vector.
> 
> I've made some patches to allocate multiple ERST and event rings, and
> make devices use different interrupters, to make use of all the MSI-X
> vectors. I've verified them and all the interrupters seem work fine. Do
> you have interest in this? I can send them out as RFC if you are
> interested. 

Yes, please send them.  I don't know if I'll have time to test (since I
really should get to your AMD chipset patches first), but it would be
good to get review from the Linux USB community.

What sort of policy do you have for which USB devices get sent to which
rings?  ISTR that you have to decide which interrupter the device will
fall under when the device slot is first allocated, and you can't change
interrupters later unless you deallocate the slot.  Is that correct?

I would think that bulk-only devices like storage devices that have to
wait on transfers should be put on a ring with the interrupt modulation
interval set very low.  At least that was my experience when I was doing
performance testing with USB3-attached SSDs.  (The work to add the
interrupt modulation setting as a parameter to the driver is languishing
on my usb-perf branch, feel free to take anything from it.)

However, I don't think you'd want to put a device that does very large,
bursty transfers on the same ring with say, an isoc device that needs
guaranteed bandwidth.

So what policy did you decide on?

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