David Gibson [da...@gibson.dropbear.id.au] wrote: | > Should we walk the /proc/device-tree/cpus/ tree and count only dirs with | > device-type "cpu" (rather than relying on the pattern PowerPC,POWER*)? | | Yes, I think you'll have to. | Ok. Are we ok with the xscom check I have (copied below):
+static int kvmppc_count_sockets_chips_dt(int *num_sockets, int *num_chips) +{ + const char *chip_pattern = "/proc/device-tree/xscom@*/ibm,chip-id"; + const char *module_pattern = "/proc/device-tree/xscom@*/ibm,hw-module-id"; --- I am not sure of a reliable way to detect number of chips besides the xscom. I do see that sysfs has node entries: for i in `ls -d /sys/bus/cpu/devices/cpu*`; > do > basename $i/node* > done | sort | uniq node0 node1 node16 node17 which seems to correspond to $ lsprop /proc/device-tree/xscom@*/ibm,chip-id /proc/device-tree/xscom@3fc0000000000/ibm,chip-id 00000000 /proc/device-tree/xscom@3fc0800000000/ibm,chip-id 00000001 /proc/device-tree/xscom@3fc8000000000/ibm,chip-id 00000010 (16) /proc/device-tree/xscom@3fc8800000000/ibm,chip-id 00000011 (17) but is that reliable? > + | > | | > | In a number of ways I'd actually prefer to move to /cpus/cpu@NNN in | > | general, since that follows the OF generic names recommendation we | > | follow for most other nodes. | > | > Do you mean rename '/proc/device-tree/cpus/PowerPC,POWER8@NNN' to | > /proc/device-tree/cpus/cpu@NNN? | | Yes. This is a firmware matter, so it's not something that can simply | be changed everywhere, but it's the approach that I'd prefer to | encourage for people making future machines and firmwares. Sure. ppc64_cpu also seems to rely on '/proc/device-tree/cpus/PowerPC' to count cores present and maybe there are other utilities that would need to be updated. Sukadev