On 11.07.2012 11:47, Peter Krempa wrote:
This patch changes the way data to fill the nodeinfo structure are
gathered. We've gathere the test data by iterating processors an sockets
separately from nodes. The reported data was based solely on information
about core id. Problems arise when eg cores in mulit-processor machines
don't have same id's on both processors or maybe one physical processor
contains more NUMA nodes.
This patch changes the approach how we detect processors and nodes. Now
we start at enumerating nodes and for each node processors, sockets and
threads are enumerated separately. This approach provides acurate data
that comply to docs about the nodeinfo structure. This also enables to
get rid of hacks: see commits 10d9038b744a69c8d4bd29c2e8c012a097481586,
ac9dd4a676f21b5e3ca6dbe0526f2a6709072beb. (Those changes in nodeinfo.c
are efectively reverted by this patch).
This patch also changes output of one of the tests, as the processor
topology is now acquired more precisely.
---
Changes to v3:
- added ATTRIBUTE_NONNULL to arguments of virNodeParseNode()
- added resetting of errno before calling readdir()
- indented comment properly
- edited comment placed before parsing info from /proc/cpuinfo to reflect current state
better
---
src/nodeinfo.c | 326 ++++++++++++--------
.../linux-nodeinfo-sysfs-test-3-cpu-x86-output.txt | 2 +-
2 files changed, 197 insertions(+), 131 deletions(-)
ACK
Michal