Sarah Sharp wrote: > The issue is a bit complicated, because Linux doesn't allow you to > allocate multiple vectors for MSI on x86. There's an implementation for > MIPS, but I'm not sure if anyone will care about xHCI on MIPS? Jesse > Barnes mentioned there was a patchset floating around to add this > functionality to x86. "Add support for multiple MSI on x86": http://thread.gmane.org/gmane.linux.kernel/1099522 > Until that patchset gets merged, To quote tglx: | Sigh, this whole thing is total clusterf*ck. | | The main horror is definitely not your fault. MSI is just broken. | [...] | We can't do multivector MSI in a sensible way on x86. and: | Though if we can come up with a scheme which does not create nested | loops over possibly hundreds of CPUs with interrupts disabled and | global locks held, I have no objections. | | One possible solution would be to reserve a block of vectors on all | cpus at boot time via a command line option for MSI block | allocations. That would simply use a bitmap protected by a mutex to | lookup a free vector space. That would avoid the whole loop issue and | work for most of the systems which need to deal with such MSI multi | vector devices. Warning: Just an idea :) 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