Re: [RFC] export irq_set/get_affinity() for multiqueue networkdrivers

From: Arjan van de Ven
Date: Fri Aug 29 2008 - 12:52:21 EST


On Fri, 29 Aug 2008 18:48:12 +0200
Andi Kleen <andi@xxxxxxxxxxxxxx> wrote:

> Arjan van de Ven <arjan@xxxxxxxxxxxxx> writes:
>
> > On Thu, 28 Aug 2008 22:21:53 +0200
> > Brice Goglin <Brice.Goglin@xxxxxxxx> wrote:
> >
> >> Hello,
> >>
> >> Is there any way to setup IRQ masks from within a driver? myri10ge
> >> currently relies on an external script (writing in
> >> /proc/irq/*/smp_affinity) to bind each queue/MSI-X to a different
> >> processor. By default, Linux will either:
> >> * round-robin the interrupts (killing the benefit of DCA for
> >> instance)
> >> * put all IRQs on the same CPU (killing much of th
> >
> > * do the right thing with the userspace irq balancer
>
> It probably also needs to be hooked up the sched_mc_power_savings
> When the switch is on the interrupts shouldn't be spread out over
> that many sockets.

that's what irqbalance already does today.

>
> Also I suspect handling SMT explicitely is a good idea. e.g. I would
> always set the affinity to all thread siblings in a core, not
> just a single one, because context switch is very cheap between them.

that is what irqbalance already does today, at least for what it
considers somewhat slower irqs.
for networking it still sucks because the packet reordering logic is
per logical cpu so you still don't want to receive packets from the
same "stream" over multiple logical cpus.



--
If you want to reach me at my work email, use arjan@xxxxxxxxxxxxxxx
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/