[ofa-general][PATCH] Re: mlx4: Completion EQ per cpu (MP support, Patch 10)
Roland Dreier
rdreier at cisco.com
Wed Apr 30 15:30:03 PDT 2008
> > I would just like to see an approach that is fully thought through and
> > gives a way for applications/kernel drivers to choose a CQ vector based
> > on some information about what CPU it will go to.
> Isn't the decision of which CPU an MSI-X is routed to (and hence, to
> which CPI an EQ is bound to) determined by userspace? (either by the irq
> balancer process or by manually setting /proc/irq/<vec>/smp_affinity)?
Yes, but how can anything tell which IRQ number corresponds to a given
"CQ vector" number? (And don't be too stuck on MSI-X, since ehca uses
some completely different GX-bus related thing to get multiple interrupts)
> What are we risking in making the default action to spread interrupts?
There are fairly plausible scenarios like a multi-threaded app where
each thread creates a send CQ and a receive CQ, which should both be
bound to the same CPU as the thread. If we spread all CQs then it's
impossible to get thread-locality.
I'm not saying that round-robin is necessarily a bad default policy, but
I do think there needs to be a complete picture of how that policy can
be overridden before we go for multiple interrupt vectors.
- R.
More information about the general
mailing list