Re: [Patch 0/2] Disable SW irqbalance/irqaffinity for E7520/E7320/E7525

From: Zwane Mwaikambo
Date: Sat Sep 25 2004 - 04:18:12 EST


Hello Suresh,

On Fri, 24 Sep 2004, Suresh Siddha wrote:

> Ok. How about this patch?
>
> Add pci quirks to disable irqbalance/affinity for E7520/E7320/E7525
> with revision ID 0x09 and below.

> diff -Nru linux-2.6.9-rc2/drivers/pci/quirks.c linux-irq/drivers/pci/quirks.c
> --- linux-2.6.9-rc2/drivers/pci/quirks.c 2004-09-12 22:31:27.000000000 -0700
> +++ linux-irq/drivers/pci/quirks.c 2004-09-04 12:33:54.373316312 -0700
> @@ -814,6 +814,64 @@
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_12, asus_hides_smbus_lpc );
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_0, asus_hides_smbus_lpc );
>
> +#ifdef CONFIG_X86_IO_APIC
> +#include <asm/hw_irq.h>
> +#ifdef CONFIG_IRQBALANCE
> +extern int irqbalance_disable(char *str);
> +#endif
> +extern int no_irq_affinity;
> +extern int noirqdebug_setup(char *str);

Ok this is sort of ugly, but it's not your fault, i understand that the
PCI quirks code is too late after IOAPIC setup, x86_64 has some early PCI
bridge detection code which helps in doing IOAPIC quirks.

> +void __devinit quirk_intel_irqbalance(struct pci_dev *dev)

This may as well be moved elsewhere since it's not actually going to be
used in PCI quirks. I think you should just do the chipset detection in
io_apic.c and then do the disable from there, it's racy and strange
(although it may seem natural) to do it in quirks.c

Thanks,
Zwane
-
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/