Re: [PATCH] xHCI: supporting MSI/MSI-X

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

 



Sarah Sharp wrote:
> On Tue, May 04, 2010 at 03:24:51PM +0100, David Vrabel wrote:
> > Andiry Xu wrote:
> > > +		for (i = 0; i < xhci->msix_count; i++) {
> > > +			fn = (irq_handler_t)xhci_msi_irq;
> > > +			ret = request_irq(xhci->msix_entries[i].vector,
> > > +					fn, 0, "xhci_hcd", xhci_to_hcd(xhci));
> > > +			if (ret)
> > > +				goto disable_msix;
> > > +		}

If the second call to request_irq fails, isn't the first handler leaked?

> > Are multiple vectors useful if they all use the same interrupt handler
> > that locks the same spinlock?
> 
> This patch is also less useful because it doesn't add a new event ring
> per MSI-X interrupter.  (Each USB device's events can be directed to a
> different event ring.)  Making each interrupt handler use a different
> spinlock doesn't make sense until we give each interrupter a separate
> event ring to process.
> 
> Andiry, does using MSI or MSI-X save any power or have any other
> benefit?

Using unshared interrupts allows to run the handlers on different CPU
cores, and I've heard that closed-source video drivers still introduce
latencies if you share interrupts with them.

As long as we can trust all the hardware out there to work with MSI, I
see no reason not to use it.  (Does the Windows xHCI driver use MSI?)


Regards,
Clemens
--
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