Messages in this thread | | | Date | Sat, 8 Nov 2008 16:01:05 -0800 | From | "Yinghai Lu" <> | Subject | Re: [PATCH 1/1] irq: Maintain user set affinity |
| |
On Sat, Nov 8, 2008 at 2:17 PM, Benjamin Herrenschmidt <benh@kernel.crashing.org> 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@kernel.crashing.org> wrote: >> > From 819ad3ed4660f4238e053728a8b5aa93d22b13d7 Mon Sep 17 00:00:00 2001 >> > From: Kumar Gala <galak@kernel.crashing.org> >> > 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
| |