Devel
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- 27 participants
- 40369 discussions
31 Oct '12
This series concludes the introduction of the virNodeGetCPUMap API
by replacing calls to virNodeGetInfo used only for the purpose
of computing the maximum number of node CPUs (which has the potential
to yield the incorrect number).
Most prominently, with patch 3/3 the output of virsh vcpuinfo will
now be correct for domains on hosts with offline CPUs
Viktor Mihajlovski (3):
qemu, lxc: Change host CPU detection logic.
python: Use virNodeGetCPUMap where possible
virsh: Use virNodeGetCPUMap if possible
python/libvirt-override.c | 100 ++++++++++++++++++++++++++++++++++------------
src/lxc/lxc_controller.c | 8 ++--
src/qemu/qemu_driver.c | 12 ++----
src/qemu/qemu_process.c | 10 ++---
tools/virsh-domain.c | 36 +++++++++++------
5 files changed, 108 insertions(+), 58 deletions(-)
--
1.7.12.4
2
7
As scheduled, we are entering freeze for 1.0.0, yay !
I have tagged the git tree and pushed libvirt-1.0.0-rc1.tar.gz release
candidate 1 to the ftp (along with rpms):
ftp://libvirt.org/libvirt/
Due to the slightly higher visibility of this release, we are giving
a bit more time for testing of the candidates, and the plan is to push
the final version at the end of next week, so expect an rc2 at the end
of the week and probably an rc3 by mid next week.
Give it a try and report,
thanks !
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
7
13
31 Oct '12
Commit 905be03d2 quit using the abstract namespace, but didn't
update the --help text to match.
* daemon/libvirtd.c (daemonUsage): Correct socket listing.
---
See also:
https://www.redhat.com/archives/libvirt-users/2012-October/msg00152.html
daemon/libvirtd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index d5f3e4c..624831a 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -936,7 +936,7 @@ libvirt management daemon:\n"), argv0);
$XDG_CONFIG_HOME/libvirt/libvirtd.conf\n\
\n\
Sockets:\n\
- $XDG_RUNTIME_DIR/libvirt/libvirt-sock (in UNIX abstract namespace)\n\
+ $XDG_RUNTIME_DIR/libvirt/libvirt-sock\n\
\n\
TLS:\n\
CA certificate: $HOME/.pki/libvirt/cacert.pem\n\
--
1.7.11.7
2
2
---
.gitignore | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/.gitignore b/.gitignore
index 98ce398..79a055b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -193,6 +193,7 @@ results.log
stamp-h
stamp-h.in
stamp-h1
+tags
!/gnulib/lib/Makefile.am
!/gnulib/tests/Makefile.am
!/m4/virt-*.m4
--
1.7.8.6
3
3
31 Oct '12
https://bugzilla.redhat.com/show_bug.cgi?id=871312
Recent fixes made almost all the right steps to make emulator pinned
to the cpuset of the whole domain in case <emulatorpin> isn't
specified, but qemudDomainGetEmulatorPinInfo still reports all the
CPUs even when cpuset is specified. This patch fixes that.
---
src/qemu/qemu_driver.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 3980c10..8b5f06a 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -4352,7 +4352,6 @@ qemudDomainGetEmulatorPinInfo(virDomainPtr dom,
virDomainDefPtr targetDef = NULL;
int ret = -1;
int maxcpu, hostcpus, pcpu;
- virDomainVcpuPinDefPtr emulatorpin = NULL;
virBitmapPtr cpumask = NULL;
bool pinned;
@@ -4394,14 +4393,15 @@ qemudDomainGetEmulatorPinInfo(virDomainPtr dom,
cpumaps[maplen - 1] &= (1 << maxcpu % 8) - 1;
}
- /* If no emulatorpin, all cpus should be used */
- emulatorpin = targetDef->cputune.emulatorpin;
- if (!emulatorpin) {
+ if (targetDef->cputune.emulatorpin) {
+ cpumask = targetDef->cputune.emulatorpin->cpumask;
+ } else if (targetDef->cpumask) {
+ cpumask = targetDef->cpumask;
+ } else {
ret = 0;
goto cleanup;
}
- cpumask = emulatorpin->cpumask;
for (pcpu = 0; pcpu < maxcpu; pcpu++) {
if (virBitmapGetBit(cpumask, pcpu, &pinned) < 0)
goto cleanup;
--
1.7.12.4
2
2
[libvirt] [PATCH] nodeinfo: Add workaround if kernel reports bogous numa topology.
by Peter Krempa 31 Oct '12
by Peter Krempa 31 Oct '12
31 Oct '12
This patch adds a workaround for the cpu topology detection code if the
kernel reports incorrect count of numa nodes or any other reason that
might result in duplicate core ID's in one socket.
If such a situation is detected, the detection code reports the correct
number of processors but the topology is mangled:
$ virsh nodeinfo
CPU model: x86_64
CPU(s): 24
CPU frequency: 2200 MHz
CPU socket(s): 1
Core(s) per socket: 24
Thread(s) per core: 1
NUMA cell(s): 1
Memory size: 8047272 KiB
This patch also adds test data for such a situation.
Reported (and test data provided) by: gcbirzan on #virt@OFTC
---
This patch looks huge but it's mostly test data.
---
src/nodeinfo.c | 40 +-
.../linux-test7/cpu/cpu0/topology/core_id | 1 +
.../cpu/cpu0/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu0/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu1/online | 1 +
.../linux-test7/cpu/cpu1/topology/core_id | 1 +
.../cpu/cpu1/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu1/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu10/online | 1 +
.../linux-test7/cpu/cpu10/topology/core_id | 1 +
.../cpu/cpu10/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu10/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu11/online | 1 +
.../linux-test7/cpu/cpu11/topology/core_id | 1 +
.../cpu/cpu11/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu11/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu12/online | 1 +
.../linux-test7/cpu/cpu12/topology/core_id | 1 +
.../cpu/cpu12/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu12/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu13/online | 1 +
.../linux-test7/cpu/cpu13/topology/core_id | 1 +
.../cpu/cpu13/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu13/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu14/online | 1 +
.../linux-test7/cpu/cpu14/topology/core_id | 1 +
.../cpu/cpu14/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu14/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu15/online | 1 +
.../linux-test7/cpu/cpu15/topology/core_id | 1 +
.../cpu/cpu15/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu15/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu16/online | 1 +
.../linux-test7/cpu/cpu16/topology/core_id | 1 +
.../cpu/cpu16/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu16/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu17/online | 1 +
.../linux-test7/cpu/cpu17/topology/core_id | 1 +
.../cpu/cpu17/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu17/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu18/online | 1 +
.../linux-test7/cpu/cpu18/topology/core_id | 1 +
.../cpu/cpu18/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu18/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu19/online | 1 +
.../linux-test7/cpu/cpu19/topology/core_id | 1 +
.../cpu/cpu19/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu19/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu2/online | 1 +
.../linux-test7/cpu/cpu2/topology/core_id | 1 +
.../cpu/cpu2/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu2/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu20/online | 1 +
.../linux-test7/cpu/cpu20/topology/core_id | 1 +
.../cpu/cpu20/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu20/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu21/online | 1 +
.../linux-test7/cpu/cpu21/topology/core_id | 1 +
.../cpu/cpu21/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu21/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu22/online | 1 +
.../linux-test7/cpu/cpu22/topology/core_id | 1 +
.../cpu/cpu22/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu22/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu23/online | 1 +
.../linux-test7/cpu/cpu23/topology/core_id | 1 +
.../cpu/cpu23/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu23/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu3/online | 1 +
.../linux-test7/cpu/cpu3/topology/core_id | 1 +
.../cpu/cpu3/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu3/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu4/online | 1 +
.../linux-test7/cpu/cpu4/topology/core_id | 1 +
.../cpu/cpu4/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu4/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu5/online | 1 +
.../linux-test7/cpu/cpu5/topology/core_id | 1 +
.../cpu/cpu5/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu5/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu6/online | 1 +
.../linux-test7/cpu/cpu6/topology/core_id | 1 +
.../cpu/cpu6/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu6/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu7/online | 1 +
.../linux-test7/cpu/cpu7/topology/core_id | 1 +
.../cpu/cpu7/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu7/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu8/online | 1 +
.../linux-test7/cpu/cpu8/topology/core_id | 1 +
.../cpu/cpu8/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu8/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/cpu/cpu9/online | 1 +
.../linux-test7/cpu/cpu9/topology/core_id | 1 +
.../cpu/cpu9/topology/physical_package_id | 1 +
.../linux-test7/cpu/cpu9/topology/thread_siblings | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu0 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu1 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu10 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu11 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu12 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu13 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu14 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu15 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu16 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu17 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu18 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu19 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu2 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu20 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu21 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu22 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu23 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu3 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu4 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu5 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu6 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu7 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu8 | 1 +
tests/nodeinfodata/linux-test7/node/node0/cpu9 | 1 +
tests/nodeinfodata/linux-test7/node/node0/meminfo | 29 +
tests/nodeinfodata/linux-test7/node/online | 1 +
tests/nodeinfodata/linux-test7/node/possible | 1 +
tests/nodeinfodata/linux-x86-test7.cpuinfo | 648 +++++++++++++++++++++
tests/nodeinfodata/linux-x86-test7.expected | 1 +
tests/nodeinfotest.c | 1 +
126 files changed, 833 insertions(+), 7 deletions(-)
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu0/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu0/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu0/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu1/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu1/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu1/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu1/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu10/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu10/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu10/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu10/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu11/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu11/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu11/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu11/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu12/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu12/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu12/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu12/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu13/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu13/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu13/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu13/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu14/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu14/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu14/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu14/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu15/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu15/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu15/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu15/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu16/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu16/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu16/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu16/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu17/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu17/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu17/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu17/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu18/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu18/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu18/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu18/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu19/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu19/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu19/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu19/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu2/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu2/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu2/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu2/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu20/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu20/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu20/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu20/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu21/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu21/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu21/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu21/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu22/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu22/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu22/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu22/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu23/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu23/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu23/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu23/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu3/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu3/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu3/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu3/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu4/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu4/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu4/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu4/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu5/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu5/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu5/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu5/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu6/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu6/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu6/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu6/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu7/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu7/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu7/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu7/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu8/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu8/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu8/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu8/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu9/online
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu9/topology/core_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu9/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-test7/cpu/cpu9/topology/thread_siblings
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu0
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu1
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu10
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu11
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu12
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu13
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu14
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu15
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu16
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu17
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu18
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu19
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu2
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu20
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu21
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu22
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu23
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu3
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu4
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu5
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu6
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu7
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu8
create mode 120000 tests/nodeinfodata/linux-test7/node/node0/cpu9
create mode 100644 tests/nodeinfodata/linux-test7/node/node0/meminfo
create mode 100644 tests/nodeinfodata/linux-test7/node/online
create mode 100644 tests/nodeinfodata/linux-test7/node/possible
create mode 100644 tests/nodeinfodata/linux-x86-test7.cpuinfo
create mode 100644 tests/nodeinfodata/linux-x86-test7.expected
diff --git a/src/nodeinfo.c b/src/nodeinfo.c
index 8f96b8b..840910d 100644
--- a/src/nodeinfo.c
+++ b/src/nodeinfo.c
@@ -200,7 +200,9 @@ CPU_COUNT(cpu_set_t *set)
# endif /* !CPU_COUNT */
/* parses a node entry, returning number of processors in the node and
- * filling arguments */
+ * filling arguments.
+ * Returns -1 on error, -2 if kernel reports invalid numa topology and number
+ * of processors in the node otherwise */
static int
virNodeParseNode(const char *node, int *sockets, int *cores, int *threads)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
@@ -219,6 +221,7 @@ virNodeParseNode(const char *node, int *sockets, int *cores, int *threads)
int siblings;
unsigned int cpu;
int online;
+ bool bad_topology = false;
*threads = 0;
*cores = 0;
@@ -300,11 +303,14 @@ virNodeParseNode(const char *node, int *sockets, int *cores, int *threads)
core = virNodeGetCpuValue(node, cpu, "topology/core_id", false);
# endif
- CPU_SET(core, &core_maps[sock]);
-
if (!(siblings = virNodeCountThreadSiblings(node, cpu)))
goto cleanup;
+ if (CPU_ISSET(core, &core_maps[sock]) && siblings <= 1)
+ bad_topology = true;
+
+ CPU_SET(core, &core_maps[sock]);
+
if (siblings > *threads)
*threads = siblings;
@@ -338,6 +344,18 @@ cleanup:
}
VIR_FREE(core_maps);
+ /* WORKAROUND: This is needed if a kernel on a machine doesn't
+ * report the complete numa topology through sysfs. We will lie about
+ * the underlying topology just to correctly report the number of processors
+ */
+ if (bad_topology) {
+ VIR_WARN("Kernel reports bogous numa topology.");
+ ret = -2;
+ *cores = processors;
+ *threads = 1;
+ *sockets = 1;
+ }
+
return ret;
}
@@ -470,8 +488,12 @@ int linuxNodeInfoCPUPopulate(FILE *cpuinfo,
}
if ((cpus = virNodeParseNode(sysfs_cpudir, &socks,
- &cores, &threads)) < 0)
- goto cleanup;
+ &cores, &threads)) < 0) {
+ if (cpus == -2)
+ goto fallback;
+ else
+ goto cleanup;
+ }
VIR_FREE(sysfs_cpudir);
@@ -505,8 +527,12 @@ fallback:
goto cleanup;
}
- if ((cpus = virNodeParseNode(sysfs_cpudir, &socks, &cores, &threads)) < 0)
- goto cleanup;
+ if ((cpus = virNodeParseNode(sysfs_cpudir, &socks, &cores, &threads)) < 0) {
+ if (cpus != -2)
+ goto cleanup;
+
+ cpus = cores;
+ }
nodeinfo->nodes = 1;
nodeinfo->cpus = cpus;
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu0/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu0/topology/core_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu0/topology/core_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu0/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu0/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu0/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu0/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu0/topology/thread_siblings
new file mode 100644
index 0000000..3dc19f2
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu0/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000001
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu1/online b/tests/nodeinfodata/linux-test7/cpu/cpu1/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu1/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu1/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu1/topology/core_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu1/topology/core_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu1/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu1/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu1/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu1/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu1/topology/thread_siblings
new file mode 100644
index 0000000..7d4e089
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu1/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000002
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu10/online b/tests/nodeinfodata/linux-test7/cpu/cpu10/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu10/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu10/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu10/topology/core_id
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu10/topology/core_id
@@ -0,0 +1 @@
+4
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu10/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu10/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu10/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu10/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu10/topology/thread_siblings
new file mode 100644
index 0000000..de0e54d
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu10/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000400
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu11/online b/tests/nodeinfodata/linux-test7/cpu/cpu11/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu11/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu11/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu11/topology/core_id
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu11/topology/core_id
@@ -0,0 +1 @@
+5
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu11/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu11/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu11/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu11/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu11/topology/thread_siblings
new file mode 100644
index 0000000..b1e6e03
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu11/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000800
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu12/online b/tests/nodeinfodata/linux-test7/cpu/cpu12/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu12/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu12/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu12/topology/core_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu12/topology/core_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu12/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu12/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu12/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu12/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu12/topology/thread_siblings
new file mode 100644
index 0000000..73f3cf7
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu12/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00001000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu13/online b/tests/nodeinfodata/linux-test7/cpu/cpu13/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu13/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu13/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu13/topology/core_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu13/topology/core_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu13/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu13/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu13/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu13/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu13/topology/thread_siblings
new file mode 100644
index 0000000..b60939a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu13/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00002000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu14/online b/tests/nodeinfodata/linux-test7/cpu/cpu14/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu14/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu14/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu14/topology/core_id
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu14/topology/core_id
@@ -0,0 +1 @@
+2
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu14/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu14/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu14/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu14/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu14/topology/thread_siblings
new file mode 100644
index 0000000..0159580
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu14/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00004000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu15/online b/tests/nodeinfodata/linux-test7/cpu/cpu15/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu15/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu15/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu15/topology/core_id
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu15/topology/core_id
@@ -0,0 +1 @@
+3
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu15/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu15/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu15/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu15/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu15/topology/thread_siblings
new file mode 100644
index 0000000..c5e4575
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu15/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00008000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu16/online b/tests/nodeinfodata/linux-test7/cpu/cpu16/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu16/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu16/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu16/topology/core_id
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu16/topology/core_id
@@ -0,0 +1 @@
+4
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu16/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu16/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu16/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu16/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu16/topology/thread_siblings
new file mode 100644
index 0000000..a5a8466
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu16/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00010000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu17/online b/tests/nodeinfodata/linux-test7/cpu/cpu17/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu17/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu17/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu17/topology/core_id
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu17/topology/core_id
@@ -0,0 +1 @@
+5
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu17/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu17/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu17/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu17/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu17/topology/thread_siblings
new file mode 100644
index 0000000..b563c50
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu17/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00020000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu18/online b/tests/nodeinfodata/linux-test7/cpu/cpu18/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu18/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu18/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu18/topology/core_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu18/topology/core_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu18/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu18/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu18/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu18/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu18/topology/thread_siblings
new file mode 100644
index 0000000..5bae96b
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu18/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00040000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu19/online b/tests/nodeinfodata/linux-test7/cpu/cpu19/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu19/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu19/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu19/topology/core_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu19/topology/core_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu19/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu19/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu19/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu19/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu19/topology/thread_siblings
new file mode 100644
index 0000000..03f1958
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu19/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00080000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu2/online b/tests/nodeinfodata/linux-test7/cpu/cpu2/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu2/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu2/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu2/topology/core_id
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu2/topology/core_id
@@ -0,0 +1 @@
+2
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu2/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu2/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu2/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu2/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu2/topology/thread_siblings
new file mode 100644
index 0000000..bc1eab3
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu2/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000004
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu20/online b/tests/nodeinfodata/linux-test7/cpu/cpu20/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu20/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu20/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu20/topology/core_id
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu20/topology/core_id
@@ -0,0 +1 @@
+2
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu20/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu20/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu20/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu20/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu20/topology/thread_siblings
new file mode 100644
index 0000000..a3242c0
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu20/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00100000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu21/online b/tests/nodeinfodata/linux-test7/cpu/cpu21/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu21/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu21/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu21/topology/core_id
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu21/topology/core_id
@@ -0,0 +1 @@
+3
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu21/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu21/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu21/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu21/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu21/topology/thread_siblings
new file mode 100644
index 0000000..fac7d63
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu21/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00200000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu22/online b/tests/nodeinfodata/linux-test7/cpu/cpu22/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu22/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu22/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu22/topology/core_id
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu22/topology/core_id
@@ -0,0 +1 @@
+4
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu22/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu22/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu22/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu22/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu22/topology/thread_siblings
new file mode 100644
index 0000000..74389e7
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu22/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00400000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu23/online b/tests/nodeinfodata/linux-test7/cpu/cpu23/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu23/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu23/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu23/topology/core_id
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu23/topology/core_id
@@ -0,0 +1 @@
+5
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu23/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu23/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu23/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu23/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu23/topology/thread_siblings
new file mode 100644
index 0000000..6c55473
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu23/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00800000
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu3/online b/tests/nodeinfodata/linux-test7/cpu/cpu3/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu3/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu3/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu3/topology/core_id
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu3/topology/core_id
@@ -0,0 +1 @@
+3
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu3/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu3/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu3/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu3/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu3/topology/thread_siblings
new file mode 100644
index 0000000..13c4744
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu3/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000008
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu4/online b/tests/nodeinfodata/linux-test7/cpu/cpu4/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu4/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu4/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu4/topology/core_id
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu4/topology/core_id
@@ -0,0 +1 @@
+4
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu4/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu4/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu4/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu4/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu4/topology/thread_siblings
new file mode 100644
index 0000000..5ce9ab8
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu4/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000010
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu5/online b/tests/nodeinfodata/linux-test7/cpu/cpu5/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu5/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu5/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu5/topology/core_id
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu5/topology/core_id
@@ -0,0 +1 @@
+5
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu5/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu5/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu5/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu5/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu5/topology/thread_siblings
new file mode 100644
index 0000000..ae752a0
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu5/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000020
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu6/online b/tests/nodeinfodata/linux-test7/cpu/cpu6/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu6/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu6/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu6/topology/core_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu6/topology/core_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu6/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu6/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu6/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu6/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu6/topology/thread_siblings
new file mode 100644
index 0000000..024ff71
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu6/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000040
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu7/online b/tests/nodeinfodata/linux-test7/cpu/cpu7/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu7/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu7/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu7/topology/core_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu7/topology/core_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu7/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu7/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu7/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu7/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu7/topology/thread_siblings
new file mode 100644
index 0000000..bb5a722
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu7/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000080
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu8/online b/tests/nodeinfodata/linux-test7/cpu/cpu8/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu8/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu8/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu8/topology/core_id
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu8/topology/core_id
@@ -0,0 +1 @@
+2
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu8/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu8/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu8/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu8/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu8/topology/thread_siblings
new file mode 100644
index 0000000..5bd120b
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu8/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000100
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu9/online b/tests/nodeinfodata/linux-test7/cpu/cpu9/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu9/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu9/topology/core_id b/tests/nodeinfodata/linux-test7/cpu/cpu9/topology/core_id
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu9/topology/core_id
@@ -0,0 +1 @@
+3
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu9/topology/physical_package_id b/tests/nodeinfodata/linux-test7/cpu/cpu9/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu9/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/cpu/cpu9/topology/thread_siblings b/tests/nodeinfodata/linux-test7/cpu/cpu9/topology/thread_siblings
new file mode 100644
index 0000000..3572438
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/cpu/cpu9/topology/thread_siblings
@@ -0,0 +1 @@
+00000000,00000000,00000000,00000200
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu0 b/tests/nodeinfodata/linux-test7/node/node0/cpu0
new file mode 120000
index 0000000..c841bea
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu0
@@ -0,0 +1 @@
+../../cpu/cpu0
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu1 b/tests/nodeinfodata/linux-test7/node/node0/cpu1
new file mode 120000
index 0000000..5f45362
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu1
@@ -0,0 +1 @@
+../../cpu/cpu1
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu10 b/tests/nodeinfodata/linux-test7/node/node0/cpu10
new file mode 120000
index 0000000..a6dc6bb
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu10
@@ -0,0 +1 @@
+../../cpu/cpu10
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu11 b/tests/nodeinfodata/linux-test7/node/node0/cpu11
new file mode 120000
index 0000000..e29d898
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu11
@@ -0,0 +1 @@
+../../cpu/cpu11
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu12 b/tests/nodeinfodata/linux-test7/node/node0/cpu12
new file mode 120000
index 0000000..211519e
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu12
@@ -0,0 +1 @@
+../../cpu/cpu12
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu13 b/tests/nodeinfodata/linux-test7/node/node0/cpu13
new file mode 120000
index 0000000..52d3b69
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu13
@@ -0,0 +1 @@
+../../cpu/cpu13
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu14 b/tests/nodeinfodata/linux-test7/node/node0/cpu14
new file mode 120000
index 0000000..24cb3b4
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu14
@@ -0,0 +1 @@
+../../cpu/cpu14
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu15 b/tests/nodeinfodata/linux-test7/node/node0/cpu15
new file mode 120000
index 0000000..e905d85
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu15
@@ -0,0 +1 @@
+../../cpu/cpu15
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu16 b/tests/nodeinfodata/linux-test7/node/node0/cpu16
new file mode 120000
index 0000000..445de40
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu16
@@ -0,0 +1 @@
+../../cpu/cpu16
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu17 b/tests/nodeinfodata/linux-test7/node/node0/cpu17
new file mode 120000
index 0000000..13929db
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu17
@@ -0,0 +1 @@
+../../cpu/cpu17
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu18 b/tests/nodeinfodata/linux-test7/node/node0/cpu18
new file mode 120000
index 0000000..3809adc
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu18
@@ -0,0 +1 @@
+../../cpu/cpu18
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu19 b/tests/nodeinfodata/linux-test7/node/node0/cpu19
new file mode 120000
index 0000000..c671083
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu19
@@ -0,0 +1 @@
+../../cpu/cpu19
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu2 b/tests/nodeinfodata/linux-test7/node/node0/cpu2
new file mode 120000
index 0000000..2dcca33
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu2
@@ -0,0 +1 @@
+../../cpu/cpu2
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu20 b/tests/nodeinfodata/linux-test7/node/node0/cpu20
new file mode 120000
index 0000000..a37c370
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu20
@@ -0,0 +1 @@
+../../cpu/cpu20
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu21 b/tests/nodeinfodata/linux-test7/node/node0/cpu21
new file mode 120000
index 0000000..68a7cad
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu21
@@ -0,0 +1 @@
+../../cpu/cpu21
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu22 b/tests/nodeinfodata/linux-test7/node/node0/cpu22
new file mode 120000
index 0000000..2c226ae
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu22
@@ -0,0 +1 @@
+../../cpu/cpu22
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu23 b/tests/nodeinfodata/linux-test7/node/node0/cpu23
new file mode 120000
index 0000000..75c2f57
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu23
@@ -0,0 +1 @@
+../../cpu/cpu23
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu3 b/tests/nodeinfodata/linux-test7/node/node0/cpu3
new file mode 120000
index 0000000..c7690e5
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu3
@@ -0,0 +1 @@
+../../cpu/cpu3
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu4 b/tests/nodeinfodata/linux-test7/node/node0/cpu4
new file mode 120000
index 0000000..9e77a64
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu4
@@ -0,0 +1 @@
+../../cpu/cpu4
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu5 b/tests/nodeinfodata/linux-test7/node/node0/cpu5
new file mode 120000
index 0000000..cc07c3b
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu5
@@ -0,0 +1 @@
+../../cpu/cpu5
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu6 b/tests/nodeinfodata/linux-test7/node/node0/cpu6
new file mode 120000
index 0000000..2e75763
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu6
@@ -0,0 +1 @@
+../../cpu/cpu6
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu7 b/tests/nodeinfodata/linux-test7/node/node0/cpu7
new file mode 120000
index 0000000..09e3f79
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu7
@@ -0,0 +1 @@
+../../cpu/cpu7
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu8 b/tests/nodeinfodata/linux-test7/node/node0/cpu8
new file mode 120000
index 0000000..bda10cc
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu8
@@ -0,0 +1 @@
+../../cpu/cpu8
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/cpu9 b/tests/nodeinfodata/linux-test7/node/node0/cpu9
new file mode 120000
index 0000000..1ec1db2
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/cpu9
@@ -0,0 +1 @@
+../../cpu/cpu9
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-test7/node/node0/meminfo b/tests/nodeinfodata/linux-test7/node/node0/meminfo
new file mode 100644
index 0000000..09a9d24
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/node0/meminfo
@@ -0,0 +1,29 @@
+Node 0 MemTotal: 134215764 kB
+Node 0 MemFree: 4659184 kB
+Node 0 MemUsed: 129556580 kB
+Node 0 Active: 57038240 kB
+Node 0 Inactive: 50860308 kB
+Node 0 Active(anon): 7992112 kB
+Node 0 Inactive(anon): 2321780 kB
+Node 0 Active(file): 49046128 kB
+Node 0 Inactive(file): 48538528 kB
+Node 0 Unevictable: 3492 kB
+Node 0 Mlocked: 3492 kB
+Node 0 Dirty: 7736 kB
+Node 0 Writeback: 0 kB
+Node 0 FilePages: 97948672 kB
+Node 0 Mapped: 39292 kB
+Node 0 AnonPages: 9953768 kB
+Node 0 Shmem: 361396 kB
+Node 0 KernelStack: 4792 kB
+Node 0 PageTables: 48328 kB
+Node 0 NFS_Unstable: 0 kB
+Node 0 Bounce: 0 kB
+Node 0 WritebackTmp: 0 kB
+Node 0 Slab: 1572840 kB
+Node 0 SReclaimable: 1463196 kB
+Node 0 SUnreclaim: 109644 kB
+Node 0 AnonHugePages: 9218048 kB
+Node 0 HugePages_Total: 8192
+Node 0 HugePages_Free: 4466
+Node 0 HugePages_Surp: 0
diff --git a/tests/nodeinfodata/linux-test7/node/online b/tests/nodeinfodata/linux-test7/node/online
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/online
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-test7/node/possible b/tests/nodeinfodata/linux-test7/node/possible
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-test7/node/possible
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-x86-test7.cpuinfo b/tests/nodeinfodata/linux-x86-test7.cpuinfo
new file mode 100644
index 0000000..4be2980
--- /dev/null
+++ b/tests/nodeinfodata/linux-x86-test7.cpuinfo
@@ -0,0 +1,648 @@
+processor : 0
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 0
+cpu cores : 12
+apicid : 16
+initial apicid : 0
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 1
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 1
+cpu cores : 12
+apicid : 17
+initial apicid : 1
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 2
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 2
+cpu cores : 12
+apicid : 18
+initial apicid : 2
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 3
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 3
+cpu cores : 12
+apicid : 19
+initial apicid : 3
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 4
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 4
+cpu cores : 12
+apicid : 20
+initial apicid : 4
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 5
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 5
+cpu cores : 12
+apicid : 21
+initial apicid : 5
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 6
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 0
+cpu cores : 12
+apicid : 22
+initial apicid : 6
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 7
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 1
+cpu cores : 12
+apicid : 23
+initial apicid : 7
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 8
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 2
+cpu cores : 12
+apicid : 24
+initial apicid : 8
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 9
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 3
+cpu cores : 12
+apicid : 25
+initial apicid : 9
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 10
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 4
+cpu cores : 12
+apicid : 26
+initial apicid : 10
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 11
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 0
+siblings : 12
+core id : 5
+cpu cores : 12
+apicid : 27
+initial apicid : 11
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.30
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 12
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 0
+cpu cores : 12
+apicid : 32
+initial apicid : 16
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 13
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 1
+cpu cores : 12
+apicid : 33
+initial apicid : 17
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 14
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 2
+cpu cores : 12
+apicid : 34
+initial apicid : 18
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 15
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 3
+cpu cores : 12
+apicid : 35
+initial apicid : 19
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 16
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 4
+cpu cores : 12
+apicid : 36
+initial apicid : 20
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 17
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 5
+cpu cores : 12
+apicid : 37
+initial apicid : 21
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 18
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 0
+cpu cores : 12
+apicid : 38
+initial apicid : 22
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 19
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 1
+cpu cores : 12
+apicid : 39
+initial apicid : 23
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 20
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 2
+cpu cores : 12
+apicid : 40
+initial apicid : 24
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 21
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 3
+cpu cores : 12
+apicid : 41
+initial apicid : 25
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 22
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 4
+cpu cores : 12
+apicid : 42
+initial apicid : 26
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
+processor : 23
+vendor_id : AuthenticAMD
+cpu family : 16
+model : 9
+model name : AMD Opteron(tm) Processor 6174
+stepping : 1
+microcode : 0x10000d4
+cpu MHz : 2200.000
+cache size : 512 KB
+physical id : 1
+siblings : 12
+core id : 5
+cpu cores : 12
+apicid : 43
+initial apicid : 27
+fpu : yes
+fpu_exception : yes
+cpuid level : 5
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save pausefilter
+bogomips : 4390.52
+TLB size : 1024 4K pages
+clflush size : 64
+cache_alignment : 64
+address sizes : 48 bits physical, 48 bits virtual
+power management: ts ttp tm stc 100mhzsteps hwpstate
+
diff --git a/tests/nodeinfodata/linux-x86-test7.expected b/tests/nodeinfodata/linux-x86-test7.expected
new file mode 100644
index 0000000..e56360d
--- /dev/null
+++ b/tests/nodeinfodata/linux-x86-test7.expected
@@ -0,0 +1 @@
+CPUs: 24/24, MHz: 2200, Nodes: 1, Sockets: 1, Cores: 24, Threads: 1
diff --git a/tests/nodeinfotest.c b/tests/nodeinfotest.c
index c44cc8a..7dae580 100644
--- a/tests/nodeinfotest.c
+++ b/tests/nodeinfotest.c
@@ -131,6 +131,7 @@ mymain(void)
"test4",
"test5",
"test6",
+ "test7",
# endif
};
--
1.7.12.4
3
7
[libvirt] [PATCH] util: Improve error reporting from absolutePathFromBaseFile helper
by Peter Krempa 31 Oct '12
by Peter Krempa 31 Oct '12
31 Oct '12
There are multiple reasons canonicalize_file_name() used in
absolutePathFromBaseFile helper can fail. This patch enhances error
reporting from that helper.
---
src/util/storage_file.c | 35 ++++++++++++++++++++++++-----------
1 file changed, 24 insertions(+), 11 deletions(-)
diff --git a/src/util/storage_file.c b/src/util/storage_file.c
index e0b4178..f4c2943 100644
--- a/src/util/storage_file.c
+++ b/src/util/storage_file.c
@@ -530,22 +530,36 @@ qedGetBackingStore(char **res,
static char *
absolutePathFromBaseFile(const char *base_file, const char *path)
{
- char *res;
- char *tmp;
- size_t d_len = dir_len (base_file);
+ char *res = NULL;
+ char *tmp = NULL;
+ size_t d_len = dir_len(base_file);
/* If path is already absolute, or if dirname(base_file) is ".",
just return a copy of path. */
- if (*path == '/' || d_len == 0)
- return canonicalize_file_name(path);
+ if (*path == '/' || d_len == 0) {
+ if (!(res = canonicalize_file_name(path)))
+ virReportSystemError(errno,
+ _("Can't canonicalize path '%s'"), path);
+
+ goto cleanup;
+ }
/* Ensure that the following cast-to-int is valid. */
- if (d_len > INT_MAX)
- return NULL;
+ if (d_len > INT_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ "Directory name too long: '%s'", base_file);
+ goto cleanup;
+ }
- if (virAsprintf(&tmp, "%.*s/%s", (int) d_len, base_file, path) < 0)
- return NULL;
- res = canonicalize_file_name(tmp);
+ if (virAsprintf(&tmp, "%.*s/%s", (int) d_len, base_file, path) < 0) {
+ virReportOOMError();
+ goto cleanup;
+ }
+
+ if (!(res = canonicalize_file_name(tmp)))
+ virReportSystemError(errno, _("Can't canonicalize path '%s'"), path);
+
+cleanup:
VIR_FREE(tmp);
return res;
}
@@ -713,7 +727,6 @@ virStorageFileGetMetadataFromBuf(int format,
meta->backingStoreRaw = meta->backingStore;
meta->backingStore = absolutePathFromBaseFile(path, backing);
if (meta->backingStore == NULL) {
- virReportOOMError();
VIR_FREE(backing);
return -1;
}
--
1.7.12.4
2
2
Hi All,
According to libvirt.org "The libvirt Microsoft Hyper-V driver can
manage Hyper-V 2008 R2.".
I have verified this after enabling HyperV in libvirt, building libvirt
(+openwsman) and performing some management against a server running
Hyper-V 2008 R2.
What is the current level of support for Microsoft Hyper-V Server 2012?
Are there plans to support Microsoft Hyper-V Server 2012 in a future
release? If so, when is this likely to happen?
Thanks in advance!
Kind Regards,
Mark
1
0
31 Oct '12
This "series wannabe" fixes a problem with SW emulated machines not
being able to be run with upstream qemu (no qemu-kvm + QMP probing).
Libvirt currently sets QEMU_CAPS_KVM based on the fact that QEMU knows
about 'query-kvm' QMP command. This not necessarily means that
'-no-kvm' option needs to be supplied in order to disable KVM and that
consequently leads to a non-startable domain when qemu doesn't know
about the option.
In order to fix this issue only with QMP, I thought about two
possibilities, so... The first patch represents what's identical for
both possibilities, whether the second one can be chosen from [2/2 v1]
and [2/2 v2] (I didn't come up with better naming, sorry).
Martin Kletzander (2):
qemu: Enhance QMP detection of KVM state
qemu: Fix SW emulated machines
src/qemu/qemu_capabilities.c | 33 +++++++++++++++++++++++++++++-
src/qemu/qemu_command.c | 6 ++++--
src/qemu/qemu_monitor.c | 23 +++++++++++++++++++++
src/qemu/qemu_monitor.h | 4 ++++
src/qemu/qemu_monitor_json.c | 48 ++++++++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor_json.h | 5 +++++
6 files changed, 116 insertions(+), 3 deletions(-)
--
1.7.12.4
2
6
Three FORWARD chain rules are added and two INPUT chain rules
are added when a network is started but only the FORWARD chain
rules are removed when the network is destroyed.
---
src/network/bridge_driver.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index f814f6f..3dbf009 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -1578,6 +1578,8 @@ networkRemoveGeneralIp6tablesRules(struct network_driver *driver,
if (!virNetworkDefGetIpByIndex(network->def, AF_INET6, 0))
return;
+ iptablesRemoveUdpInput(driver->iptables, AF_INET6, network->def->bridge, 53);
+ iptablesRemoveTcpInput(driver->iptables, AF_INET6, network->def->bridge, 53);
iptablesRemoveForwardAllowCross(driver->iptables, AF_INET6, network->def->bridge);
iptablesRemoveForwardRejectIn(driver->iptables, AF_INET6, network->def->bridge);
iptablesRemoveForwardRejectOut(driver->iptables, AF_INET6, network->def->bridge);
--
1.7.11.7
2
1