On Sun, 2008-07-13 at 16:29 -0700, Eric W. Biederman wrote:
I know and I agree. Which is why I'd rather keep the SW crap totally
local to the MSI support code and not add new concepts to the generic
IRQ API such as sub-channels, for which it's really not ready for imho.
They -are- separate IRQs, just badly implemented. Besides, a large part
of the problem is purely due to the typical x86 implementation of them,
since for example, on most PowerPC's (and possibly other archs), they
tend to land in the PIC as normal sources, and as such benefit from all
the "features" of such interrupts like HW masking, affinity control,
etc... at the PIC level.
In any case, SW masking will work just fine, and affinity can be dealt
with without too much harm neither.
And you want to change the model for it ? I say no :-) Just make them
fit with a hammer. In fact, it's not even a big hammer. The only thing
that doesn't really fit is the affinity bits, which can be dealt with.
Agreed.
Our existing model works just fine imho.
I think Willy's initial model can work with SW masking. All of the
latching & re-emission stuff is already in the core. The only problem is
affinity which can be hacked around, by either requiring all irqs to
change affinity or bouncing them all on one change, or only exposing
affinity control on the first one, whatever.
No. Not a lot. And those kludge are mostly local to the MSI support core
and don't expose new semantics to the existing IRQ model.
This is purely a backend issue and isn't a big deal imho.
I agree. But in the meantime, if we want to support it, I prefer the
option of making it fit in the existing model.
Cheers,
Ben.
--