[RFC/PATCH 0/16] Ops based MSI Implementation
Benjamin Herrenschmidt
benh at kernel.crashing.org
Mon Jan 29 11:26:48 EST 2007
> That isn't even the reason it is that way. It is because allocating
> 4096 irqs in a single vector is a bad idea
Why ?
> and because it requires you to pass type information of what kind of
> msi you are dealing with to the lower levels in an allocation routine
> that make it bad idea.
> Because if you don't consider the IBM HV it provides not benefit and
> just puts unnecessary loops, and type information in architecture
> code.
The only difference in practice is loop vs. no loop in fact. That is
alloc_irq (one MSI) for your version and
alloc_irqs (an array of MSIs) for our version.
Sure, the later, we also pass the type, but you don't use it for the
"raw" case, we only use it for the hypervisor case.
The difference is that one version (yours) cannot handle the HV case
while the other can. Makes a big difference to me.
> Face it. Trying to make the allocation routine serve for both the
> raw and the HV case unmodified is a layering violation.
So you want two separate abstractions and I think that's gross.
Ben.
More information about the Linuxppc-dev
mailing list