Re: [patch] PCI configuration fix for NUMA-Q

Alan Cox (alan@lxorguk.ukuu.org.uk)
09 Aug 2002 00:41:59 +0100


On Thu, 2002-08-08 at 23:07, Matthew Dobson wrote:
> Linus,
> The PCI code for NUMA-Q machines has been broken for a while... The kernel
> currently can't find PCI busses on quad's other than the first. This patch
> fixes that problem. Please apply.

Its a tiny bit more code to implement a set of pci ops instead of
hacking CONFIG_MULTIQUAD into the core code and it gets rid of the
ifdefs for BUS2QUAD and the like if you instead of ideffing it all
split the pci_conf1_ ops so you have your own copy with BUS2QUAD bits
called pci_conf1_mq_.... and put the originals back cleanly without
multiquad.

All you then have to do is

static struct pci_ops pci_direct_mq_conf1 = {
pci_conf1_read_mq_config_byte,
pci_conf1_read_mq_config_word,
pci_conf1_read_mq_config_dword,
pci_conf1_write_mq_config_byte,
pci_conf1_write_mq_config_word,
pci_conf1_write_mq_config_dword
};

and in the probe path a single clean

#ifdef CONFIG_MULTIQUAD
/* Multi-Quad has an extended PCI Conf1 */
if(clustered_apic_mode)
return &pci_direct_mq_conf1;
#endif
return &pci_direct_conf1;
}

which even takes the bus2quad maths out of line for non numa boxes
running the summit kernel code

Less ifdefs, less magic macros, minutely better performance and it
scales for future stuff when Intel/Dell/whoever releases their NUMA
chipset

(See 2.4.20pre-ac although the effect is less obvious there as its all
in one file anyway in 2.4)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/