RFC: /proc/cpuinfo confusion with AMD processors

From: Prarit Bhargava
Date: Mon Jun 30 2014 - 08:50:57 EST


AMD defines a "Package" as the hardware processor itself. Each Package contains
multiple Nodes, and each Node has multiple Compute Units. Each Compute Unit can
have up to 2 cores that [with the 62xx and 63xx] do not have multiple Threads.

That is, to determine the number of CPUs that Linux sees, multiply

Package * Nodes * Compute Units * Cores

Note that Nodes and Compute Units are not indicated in /proc/cpuinfo directly
(although it could be argued that they should be).

The output of /proc/cpuinfo is confusing at this point as ...


processor : 31
vendor_id : AuthenticAMD
cpu family : 21
model : 2
model name : AMD Opteron(tm) Processor 6386 SE
stepping : 0
microcode : 0x6000822
cpu MHz : 2800.000
cache size : 2048 KB
physical id : 1
siblings : 16 <<< this is number of threads per package
core id : 7 <<< this is the core id of this thread relative to node
cpu cores : 8 <<< this is the number of cores per node

which makes deciphering the system topology quite difficult as values are
relative to both nodes and the entire package. It is not possible using this
information to uniquely identify a processor.

I want to make two changes. The first is to modify /proc/cpuinfo to include
both the node information for all x86 processors and also include a "compute
unit id" field for AMD systems.

The second change would be to include the same data in /sys which currently does
not contain the above information in the topology directory.

Thoughts/concerns?

P.
--
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/