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

From: Andi Kleen
Date: Fri Aug 29 2008 - 12:48:28 EST


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.

Does it need callbacks to change the interrupts when that variable
changes?

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.

-Andi

--
ak@xxxxxxxxxxxxxxx
--
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/