Re: [PATCH 1/1] irq: Maintain user set affinity
From: Yinghai Lu
Date: Sat Nov 08 2008 - 19:01:25 EST
On Sat, Nov 8, 2008 at 2:17 PM, Benjamin Herrenschmidt
<benh@xxxxxxxxxxxxxxxxxxx> wrote:
> On Sat, 2008-11-08 at 14:12 -0800, Yinghai Lu wrote:
>> On Tue, Nov 4, 2008 at 8:31 AM, Kumar Gala <galak@xxxxxxxxxxxxxxxxxxx> wrote:
>> > From 819ad3ed4660f4238e053728a8b5aa93d22b13d7 Mon Sep 17 00:00:00 2001
>> > From: Kumar Gala <galak@xxxxxxxxxxxxxxxxxxx>
>> > Date: Tue, 4 Nov 2008 10:13:53 -0600
>> > Subject: [PATCH 1/1] irq: Maintain user set affinity
>> >
>> > This addresses a regression in that if a user specified an affinity
>> > for an interrupt that affinity information would get reset between
>> > a request_irq(), free_irq() and request_irq() for the same irq.
>> >
>> > On example of this is bringing up an ethernet interface, taking
>> > it down and bringing it back up again.
>> >
>> > Instead of always using the irq_default_affinity we use the
>> > previous setting of the IRQs affinity with the assumption that
>> > at boot the IRQs affinity will be set to irq_default_affinity.
>>
>> why ?, the default_affinity is expected behavior...
>>
>> for example: when MSI is used, second driver could get same irq if
>> first driver is unloaded.
>
> The default affinity should be set when the irq is allocated / assigned
> to a device, not when it's requested.
ok, you are right.
for MSI, affinity is set two times.
also in dynamic_irq_init is setting with
#ifdef CONFIG_SMP
cpus_setall(desc->affinity);
#endif
it seems should use irq_default_affinity instead of CPU_MASK_ALL directly there.
YH
--
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/