3 ways to represent cpu affinity in /sys and counting
From: Anton Blanchard
Date: Sat Dec 25 2004 - 19:29:24 EST
Hi,
We have a patch to change pcibus_to_cpumask to pcibus_to_node. This makes
it more consistent with cpu_to_node, and when you want a cpumask you
use node_to_cpumask.
The one real user of pcibus_to_cpumask in arch/x86-64/kernel/pci-gart.c
highlights this:
cpumask_t mask;
mask = pcibus_to_cpumask(to_pci_dev(dev)->bus->number);
node = cpu_to_node(first_cpu(mask));
We go around in circles to get back to the node. I then started looking
at how we export cpu affinity and node information in sysfs:
A pci device has a local_cpus property:
/sys/devices/pci000a:00/000a:00:02.6/local_cpus
A pci_bus has a cpuaffinity property:
/sys/class/pci_bus/000d:d8/cpuaffinity
A node has a cpumap property:
/sys/devices/system/node/node3/cpumap
Can we standardize on a single property name for this? :)
Furthermore, looking at node linkages:
A node has symlinks to cpus:
/sys/devices/system/node/node0/cpu0 -> /sys/devices/system/cpu/cpu0
But doesnt have symlinks to pci devices.
A cpu doesnt have a cpumask of its node, but a pci device and pci bus
both do. Is there some way we can stardardize this too?
Ideally we want to be able to lookup a device -> node -> cpumask
relationship in a consistent way. Assuming we fix up the 3 different
names for cpu affinity properties, we still have 2 methods of looking
that up, and no easy way of going from pci devices to nodes.
Anton
-
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/