Hallo, I did a recent patch to make PCI driver ->probe run on the local node of a PCI device. This gives better NUMA locality. One problem is that most network drivers do a lot of initialization and memory allocation not in ->probe, but in ->open. One way to fix them would be to do the same net/core/dev.c when opening a device. Unfortunately the code there only knows the net_device, not the pci_dev because a device might not have one. But the pci_dev is needed to figure out the bus and then from that the node the device belongs to.
One hackish way would be to search all pci devices and check their driver data field and if it matches the netdevice do the initialization on that node. I think that could even work, but it has a small probability to malfunction if someone reuses driver data for non pointer data and the data in there looks like the current netdevice. Even that case wouldn't be too bad because the code would not crash, just possibly run on the wrong node. Anyways, it would be still not very clean. Has anybody any better suggestion to do this mapping? I would prefer a way that does not require driver patching. -Andi - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html