[libvirt] [PATCH] nodeinfo: Add workaround if kernel reports bogous numa topology.
by Peter Krempa
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
12 years, 5 months
[libvirt] [PATCH] util: Improve error reporting from absolutePathFromBaseFile helper
by Peter Krempa
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
12 years, 5 months
[libvirt] [Libvirt] Support for HyperV Server 2012?
by Mark Ashton
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
12 years, 5 months
[libvirt] [PATCH 0/2] Make non-KVM machines work with QMP probing
by Martin Kletzander
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
12 years, 5 months
[libvirt] [PATCH] bugfix: ip6tables rule removal
by Gene Czarcinski
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
12 years, 5 months
[libvirt] [PATCH] maint: log xml during volume creation
by Eric Blake
I noticed this while answering a list question about Java bindings
of volume creation.
* src/libvirt.c (virStorageVolCreateXML)
(virStorageVolCreateXMLFrom): Use consistent spelling of xmlDesc,
and log the argument.
---
Pushing under the trivial rule.
src/libvirt.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/src/libvirt.c b/src/libvirt.c
index 8e01443..2a01b80 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -13298,7 +13298,7 @@ virStorageVolGetKey(virStorageVolPtr vol)
/**
* virStorageVolCreateXML:
* @pool: pointer to storage pool
- * @xmldesc: description of volume to create
+ * @xmlDesc: description of volume to create
* @flags: extra flags; not used yet, so callers should always pass 0
*
* Create a storage volume within a pool based
@@ -13309,10 +13309,10 @@ virStorageVolGetKey(virStorageVolPtr vol)
*/
virStorageVolPtr
virStorageVolCreateXML(virStoragePoolPtr pool,
- const char *xmldesc,
+ const char *xmlDesc,
unsigned int flags)
{
- VIR_DEBUG("pool=%p, flags=%x", pool, flags);
+ VIR_DEBUG("pool=%p, xmlDesc=%s, flags=%x", pool, xmlDesc, flags);
virResetLastError();
@@ -13322,7 +13322,7 @@ virStorageVolCreateXML(virStoragePoolPtr pool,
return NULL;
}
- virCheckNonNullArgGoto(xmldesc, error);
+ virCheckNonNullArgGoto(xmlDesc, error);
if (pool->conn->flags & VIR_CONNECT_RO) {
virLibConnError(VIR_ERR_OPERATION_DENIED, __FUNCTION__);
@@ -13331,7 +13331,7 @@ virStorageVolCreateXML(virStoragePoolPtr pool,
if (pool->conn->storageDriver && pool->conn->storageDriver->volCreateXML) {
virStorageVolPtr ret;
- ret = pool->conn->storageDriver->volCreateXML (pool, xmldesc, flags);
+ ret = pool->conn->storageDriver->volCreateXML (pool, xmlDesc, flags);
if (!ret)
goto error;
return ret;
@@ -13348,7 +13348,7 @@ error:
/**
* virStorageVolCreateXMLFrom:
* @pool: pointer to parent pool for the new volume
- * @xmldesc: description of volume to create
+ * @xmlDesc: description of volume to create
* @clonevol: storage volume to use as input
* @flags: extra flags; not used yet, so callers should always pass 0
*
@@ -13361,11 +13361,12 @@ error:
*/
virStorageVolPtr
virStorageVolCreateXMLFrom(virStoragePoolPtr pool,
- const char *xmldesc,
+ const char *xmlDesc,
virStorageVolPtr clonevol,
unsigned int flags)
{
- VIR_DEBUG("pool=%p, flags=%x, clonevol=%p", pool, flags, clonevol);
+ VIR_DEBUG("pool=%p, xmlDesc=%s, clonevol=%p, flags=%x",
+ pool, xmlDesc, clonevol, flags);
virResetLastError();
@@ -13380,7 +13381,7 @@ virStorageVolCreateXMLFrom(virStoragePoolPtr pool,
goto error;
}
- virCheckNonNullArgGoto(xmldesc, error);
+ virCheckNonNullArgGoto(xmlDesc, error);
if (pool->conn->flags & VIR_CONNECT_RO ||
clonevol->conn->flags & VIR_CONNECT_RO) {
@@ -13391,7 +13392,7 @@ virStorageVolCreateXMLFrom(virStoragePoolPtr pool,
if (pool->conn->storageDriver &&
pool->conn->storageDriver->volCreateXMLFrom) {
virStorageVolPtr ret;
- ret = pool->conn->storageDriver->volCreateXMLFrom (pool, xmldesc,
+ ret = pool->conn->storageDriver->volCreateXMLFrom (pool, xmlDesc,
clonevol, flags);
if (!ret)
goto error;
--
1.7.11.7
12 years, 5 months
[libvirt] [PATCH] Create temporary dir for socket
by Guido Günther
to avoid ENAMETOOLONG:
https://buildd.debian.org/status/fetch.php?pkg=libvirt&arch=amd64&ver=1.0...
---
tests/qemumonitortestutils.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/tests/qemumonitortestutils.c b/tests/qemumonitortestutils.c
index 7133c99..1369cb7 100644
--- a/tests/qemumonitortestutils.c
+++ b/tests/qemumonitortestutils.c
@@ -424,9 +424,23 @@ static qemuMonitorCallbacks qemuCallbacks = {
qemuMonitorTestPtr qemuMonitorTestNew(bool json, virCapsPtr caps)
{
qemuMonitorTestPtr test;
- const char *path = abs_builddir "/qemumonitorjsontest.sock";
virDomainChrSourceDef src;
+ char *tmpdir = NULL, *path = NULL;
+ char template[] = "/tmp/libvirt_XXXXXX";
+
+ tmpdir = mkdtemp(template);
+ if (tmpdir == NULL) {
+ virReportSystemError(errno, "%s",
+ "Failed to create temporary directory");
+ goto error;
+ }
+
+ if (virAsprintf(&path, "%s/qemumonitorjsontest.sock", tmpdir) < 0) {
+ virReportOOMError();
+ goto error;
+ }
+
memset(&src, 0, sizeof(src));
src.type = VIR_DOMAIN_CHR_TYPE_UNIX;
src.data.nix.path = (char *)path;
@@ -494,11 +508,15 @@ qemuMonitorTestPtr qemuMonitorTestNew(bool json, virCapsPtr caps)
test->running = true;
virMutexUnlock(&test->lock);
+cleanup:
+ if (tmpdir)
+ rmdir(tmpdir);
+ VIR_FREE(path);
return test;
error:
qemuMonitorTestFree(test);
- return NULL;
+ goto cleanup;
}
qemuMonitorPtr qemuMonitorTestGetMonitor(qemuMonitorTestPtr test)
--
1.7.10.4
12 years, 5 months
[libvirt] [PATCH] util: do a better job of matching up pids with their binaries
by Laine Stump
This patch resolves: https://bugzilla.redhat.com/show_bug.cgi?id=871201
If libvirt is restarted after updating the dnsmasq or radvd packages,
a subsequent "virsh net-destroy" will fail to kill the dnsmasq/radvd
process.
The problem is that when libvirtd restarts, it re-reads the dnsmasq
and radvd pidfiles, then does a sanity check on each pid it finds,
including checking that the symbolic link in /proc/$pid/exe actually
points to the same file as the path used by libvirt to execute the
binary in the first place. If this fails, libvirt assumes that the
process is no longer alive.
But if the original binary has been replaced, the link in /proc is set
to "$binarypath (deleted)" (it literally has the string " (deleted)"
appended to the link text stored in the filesystem), so even if a new
binary exists in the same location, attempts to resolve the link will
fail.
In the end, not only is the old dnsmasq/radvd not terminated when the
network is stopped, but a new dnsmasq can't be started when the
network is later restarted (because the original process is still
listening on the ports that the new process wants).
The solution is, when the initial "use stat to check for identical
inodes" check for identity between /proc/$pid/exe and $binpath fails,
to check /proc/$pid/exe for a link ending with " (deleted)" and if so,
truncate that part of the link and compare what's left with the
original binarypath.
A twist to this problem is that on systems with "merged" /sbin and
/usr/sbin (i.e. /sbin is really just a symlink to /usr/sbin; Fedora
17+ is an example of this), libvirt may have started the process using
one path, but /proc/$pid/exe lists a different path (indeed, on F17
this is the case - libvirtd uses /sbin/dnsmasq, but /proc/$pid/exe
shows "/usr/sbin/dnsmasq"). The further bit of code to resolve this is
to call virFileResolveAllLinks() on both the original binarypath and
on the truncated link we read from /proc/$pid/exe, and compare the
results.
The resulting code still succeeds in all the same cases it did before,
but also succeeds if the binary was deleted or replaced after it was
started.
---
src/util/virpidfile.c | 92 ++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 73 insertions(+), 19 deletions(-)
diff --git a/src/util/virpidfile.c b/src/util/virpidfile.c
index c2a087d..cb8a992 100644
--- a/src/util/virpidfile.c
+++ b/src/util/virpidfile.c
@@ -35,6 +35,7 @@
#include "logging.h"
#include "virterror_internal.h"
#include "c-ctype.h"
+#include "areadlink.h"
#define VIR_FROM_THIS VIR_FROM_NONE
@@ -203,38 +204,91 @@ int virPidFileRead(const char *dir,
*/
int virPidFileReadPathIfAlive(const char *path,
pid_t *pid,
- const char *binpath)
+ const char *binPath)
{
- int rc;
- char *procpath = NULL;
+ int ret, retPid;
+ bool isLink;
+ char *procPath = NULL;
+ char *procLink = NULL;
+ size_t procLinkLen;
+ char *resolvedBinPath = NULL;
+ char *resolvedProcLink = NULL;
+ const char deletedText[] = " (deleted)";
+ size_t deletedTextLen = strlen(deletedText);
+
- rc = virPidFileReadPath(path, pid);
- if (rc < 0)
- return rc;
+ /* only set this at the very end on success */
+ *pid = -1;
+
+ if ((ret = virPidFileReadPath(path, &retPid)) < 0)
+ goto cleanup;
#ifndef WIN32
/* Check that it's still alive. Safe to skip this sanity check on
* mingw, which lacks kill(). */
- if (kill(*pid, 0) < 0) {
- *pid = -1;
- return 0;
+ if (kill(retPid, 0) < 0) {
+ ret = 0;
+ retPid = -1;
+ goto cleanup;
}
#endif
- if (binpath) {
- if (virAsprintf(&procpath, "/proc/%lld/exe", (long long)*pid) < 0) {
- *pid = -1;
- return -1;
- }
+ if (!binPath) {
+ /* we only knew the pid, and that pid is alive, so we can
+ * return it.
+ */
+ ret = 0;
+ goto cleanup;
+ }
+
+ if (virAsprintf(&procPath, "/proc/%lld/exe", (long long)retPid) < 0) {
+ ret = -ENOMEM;
+ goto cleanup;
+ }
- if (virFileIsLink(procpath) &&
- virFileLinkPointsTo(procpath, binpath) == 0)
- *pid = -1;
+ if ((ret = virFileIsLink(procPath)) < 0)
+ goto cleanup;
+ isLink = ret;
- VIR_FREE(procpath);
+ if (isLink && virFileLinkPointsTo(procPath, binPath)) {
+ /* the link in /proc/$pid/exe is a symlink to a file
+ * that has the same inode as the file at binpath.
+ */
+ ret = 0;
+ goto cleanup;
}
- return 0;
+ /* Even if virFileLinkPointsTo returns a mismatch, it could be
+ * that the binary was deleted/replaced after it was executed. In
+ * that case the link in /proc/$pid/exe will contain
+ * "$procpath (deleted)". Read that link, remove the " (deleted)"
+ * part, and see if it has the same canonicalized name as binpath.
+ */
+ if (!(procLink = areadlink(procPath))) {
+ ret = -errno;
+ goto cleanup;
+ }
+ procLinkLen = strlen(procLink);
+ if (procLinkLen > deletedTextLen)
+ procLink[procLinkLen - deletedTextLen] = 0;
+
+ if ((ret = virFileResolveAllLinks(binPath, &resolvedBinPath)) < 0)
+ goto cleanup;
+ if ((ret = virFileResolveAllLinks(procLink, &resolvedProcLink)) < 0)
+ goto cleanup;
+
+ ret = STREQ(resolvedBinPath, resolvedProcLink) ? 0 : -1;
+
+cleanup:
+ VIR_FREE(procPath);
+ VIR_FREE(procLink);
+ VIR_FREE(resolvedProcLink);
+ VIR_FREE(resolvedBinPath);
+
+ /* return the originally set pid of -1 unless we proclaim success */
+ if (ret == 0)
+ *pid = retPid;
+ return ret;
}
--
1.7.11.7
12 years, 5 months
[libvirt] [PATCH] cpu: Fix definition of flag smap
by Peter Krempa
A mild case of dyslexia caused that commit
012f9b19ef3812884e207dc431571502de4cebce specifies wrong mask for the
smap cpu feature flag. This patch fixes that mistake.
---
The flags definition file in qemu can be accessed at:
http://git.qemu.org/?p=qemu.git;a=blob;f=target-i386/cpu.c;h=f3708e63b765...
---
src/cpu/cpu_map.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/cpu/cpu_map.xml b/src/cpu/cpu_map.xml
index d059e20..f0a1f04 100644
--- a/src/cpu/cpu_map.xml
+++ b/src/cpu/cpu_map.xml
@@ -270,7 +270,7 @@
<cpuid function='0x00000007' ebx='0x00000080'/>
</feature>
<feature name='smap'>
- <cpuid function='0x00000007' ebx='0x00080000'/>
+ <cpuid function='0x00000007' ebx='0x00100000'/>
</feature>
<!-- models -->
--
1.7.12.4
12 years, 5 months
[libvirt] [jbrooks@redhat.com: [Users] oVirt at LinuxCon Europe Next Week]
by Dave Allan
FYI, there's a bunch of oVirt related stuff going on at LinuxCon next
week.
----- Forwarded message from Jason Brooks <jbrooks(a)redhat.com> -----
Date: Mon, 29 Oct 2012 14:11:29 -0700
From: Jason Brooks <jbrooks(a)redhat.com>
To: oVirt Mailing List <users(a)ovirt.org>, announce(a)ovirt.org
Subject: [Users] oVirt at LinuxCon Europe Next Week
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121016 Thunderbird/16.0.1
LinuxCon Europe 2012 is taking place next week in Barcelona, Spain,
alongside a cluster of related workshops and summits, several of which
will focus on the oVirt Project.
If you are planning on attending LinuxCon Europe next week, it should
provide a great opportunity to connect with other oVirt community
members in attendance. If you know others outside the community who
plan to be at LinuxCon Europe, and who may be interested in learning
more about oVirt, please pass along this information.
On Monday November 5, from 10:30am to 7:00pm, and continuing on
Tuesday from 10:30am to 4:30pm, there will be a Technology Showcase
with booths from LinuxCon Europe exhibitors. The oVirt Project will be
in booth #22, on the ground floor of the Hotel Fira Palace.
On Tuesday November 6, the oVirt Project's own Itamar Heim, from Red
Hat, will giving the talk, "Introduction to the oVirt Virtualization
Management Platform," from 2:15 pm to 3:10pm, at the Hotel Fira
Palace, in the Verdi room, as part of the CloudOpen Summit.
On Wednesday November 7, the oVirt Workshop will kick off at 9am in
the L'ARIA Restaurant, before covering an introduction to oVirt,
architecture and roadmap presentations, and deep dives into oVirt
networking and storage, leading up to a Hands-On Install & Play Lab
from 3:30pm to 6:00pm.
Also on Wednesday, at the KVM Forum, there will be an oVirt Demo from
5:30pm to 6:00pm in the Ambar room.
On Thursday November 8, the oVirt Workshop resumes at 9:00am in the
Rubi room, with a full day of sessions devoted to oVirt integration
topics.
Also on Thursday, at 11:15am, Red Hat's Vijay Bellur will be giving a
talk on "Integrating GlusterFS, oVirt and KVM" as part of the Gluster
Workshop, in the Vivaldi room.
On Friday November 9, the oVirt Workshop will begin its final day with
a brief keynote in the Ambar room, before proceeding with a day of
developer-focused topics back in the Rubi room.
For details on the oVirt Workshop agenda, see the schedule at
http://events.linuxfoundation.org/events/kvm-forum/schedule.
For information about LinuxCon Europe 2012, see event site at
http://events.linuxfoundation.org/events/linuxcon-europe.
_______________________________________________
Users mailing list
Users(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/users
----- End forwarded message -----
12 years, 5 months