]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
virNodeParseSocket: Take ARM into account
authorMichal Privoznik <miso.privoznik@gmail.com>
Tue, 17 Jun 2014 09:22:05 +0000 (11:22 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 20 Jun 2014 13:59:08 +0000 (15:59 +0200)
The virNodeParseSocket() function tries to get socked ID from
'topology/physical_package_id' file. However, on some architectures
the file contains the -1 constant which makes in turn libvirt think
the info extraction was unsuccessful. If that's the case, we need to
overwrite the obtained integer with zero like we are doing for other
architectures.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
18 files changed:
cfg.mk
src/nodeinfo.c
tests/nodeinfodata/linux-armv6l-raspberrypi.cpuinfo [new file with mode: 0644]
tests/nodeinfodata/linux-armv6l-raspberrypi.expected [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_id [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_siblings [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_siblings_list [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/physical_package_id [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/thread_siblings [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/thread_siblings_list [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/cpuidle/current_driver [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/cpuidle/current_governor_ro [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/kernel_max [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/offline [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/online [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/possible [new file with mode: 0644]
tests/nodeinfodata/linux-raspberrypi/cpu/present [new file with mode: 0644]
tests/nodeinfotest.c

diff --git a/cfg.mk b/cfg.mk
index 1f076391e6fb160910f14a61d8492dcd439135a0..baaab710a674108f3db29dfffbc05a46ef349d28 100644 (file)
--- a/cfg.mk
+++ b/cfg.mk
@@ -1093,7 +1093,7 @@ exclude_file_name_regexp--sc_require_config_h_first = \
        ^(examples/|tools/virsh-edit\.c$$)
 
 exclude_file_name_regexp--sc_trailing_blank = \
-  /qemuhelpdata/|/sysinfodata/.*\.data$$
+  /qemuhelpdata/|/sysinfodata/.*\.data|/nodeinfodata/.*\.cpuinfo$$
 
 exclude_file_name_regexp--sc_unmarked_diagnostics = \
   ^(docs/apibuild.py|tests/virt-aa-helper-test)$$
@@ -1124,4 +1124,4 @@ exclude_file_name_regexp--sc_prohibit_mixed_case_abbreviations = \
   ^src/(vbox/vbox_CAPI.*.h|esx/esx_vi.(c|h)|esx/esx_storage_backend_iscsi.c)$$
 
 exclude_file_name_regexp--sc_prohibit_empty_first_line = \
-  ^(README|daemon/THREADS\.txt|src/esx/README|docs/library.xen|tests/vmwareverdata/fusion-5.0.3.txt)$$
+  ^(README|daemon/THREADS\.txt|src/esx/README|docs/library.xen|tests/vmwareverdata/fusion-5.0.3.txt|tests/nodeinfodata/linux-raspberrypi/cpu/offline)$$
index 58691335fad744e7dac2d188371d22adb5b2ed25..8fe7adccaf380510ffc22c5c641d5d1e05f5e768 100644 (file)
@@ -395,8 +395,8 @@ virNodeParseSocket(const char *dir,
 {
     int ret = virNodeGetCpuValue(dir, cpu, "topology/physical_package_id", 0);
 
-    if (ARCH_IS_PPC(arch) || ARCH_IS_S390(arch)) {
-        /* ppc and s390(x) has -1 */
+    if (ARCH_IS_ARM(arch) || ARCH_IS_PPC(arch) || ARCH_IS_S390(arch)) {
+        /* arm, ppc and s390(x) has -1 */
         if (ret < 0)
             ret = 0;
     }
diff --git a/tests/nodeinfodata/linux-armv6l-raspberrypi.cpuinfo b/tests/nodeinfodata/linux-armv6l-raspberrypi.cpuinfo
new file mode 100644 (file)
index 0000000..8857da0
--- /dev/null
@@ -0,0 +1,12 @@
+Processor       : ARMv6-compatible processor rev 7 (v6l)
+BogoMIPS        : 697.95
+Features        : swp half thumb fastmult vfp edsp java tls 
+CPU implementer : 0x41
+CPU architecture: 7
+CPU variant     : 0x0
+CPU part        : 0xb76
+CPU revision    : 7
+
+Hardware        : BCM2708
+Revision        : 1000003
+Serial          : 000000008fbfc895
diff --git a/tests/nodeinfodata/linux-armv6l-raspberrypi.expected b/tests/nodeinfodata/linux-armv6l-raspberrypi.expected
new file mode 100644 (file)
index 0000000..146bd07
--- /dev/null
@@ -0,0 +1 @@
+CPUs: 1/1, MHz: 697, Nodes: 1, Sockets: 1, Cores: 1, Threads: 1
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_id b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_id
new file mode 100644 (file)
index 0000000..573541a
--- /dev/null
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_siblings b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_siblings
new file mode 100644 (file)
index 0000000..d00491f
--- /dev/null
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_siblings_list b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_siblings_list
new file mode 100644 (file)
index 0000000..573541a
--- /dev/null
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/physical_package_id b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/physical_package_id
new file mode 100644 (file)
index 0000000..3a2e3f4
--- /dev/null
@@ -0,0 +1 @@
+-1
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/thread_siblings b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/thread_siblings
new file mode 100644 (file)
index 0000000..d00491f
--- /dev/null
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/thread_siblings_list b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/thread_siblings_list
new file mode 100644 (file)
index 0000000..573541a
--- /dev/null
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/cpuidle/current_driver b/tests/nodeinfodata/linux-raspberrypi/cpu/cpuidle/current_driver
new file mode 100644 (file)
index 0000000..621e94f
--- /dev/null
@@ -0,0 +1 @@
+none
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/cpuidle/current_governor_ro b/tests/nodeinfodata/linux-raspberrypi/cpu/cpuidle/current_governor_ro
new file mode 100644 (file)
index 0000000..c35a724
--- /dev/null
@@ -0,0 +1 @@
+menu
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/kernel_max b/tests/nodeinfodata/linux-raspberrypi/cpu/kernel_max
new file mode 100644 (file)
index 0000000..573541a
--- /dev/null
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/offline b/tests/nodeinfodata/linux-raspberrypi/cpu/offline
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/online b/tests/nodeinfodata/linux-raspberrypi/cpu/online
new file mode 100644 (file)
index 0000000..573541a
--- /dev/null
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/possible b/tests/nodeinfodata/linux-raspberrypi/cpu/possible
new file mode 100644 (file)
index 0000000..573541a
--- /dev/null
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/present b/tests/nodeinfodata/linux-raspberrypi/cpu/present
new file mode 100644 (file)
index 0000000..573541a
--- /dev/null
@@ -0,0 +1 @@
+0
index 650a674dd621ea1123b5d8ba7a95cdfd152533f9..3c76e5dfc10dd6660d79595241ad160296ab41e9 100644 (file)
@@ -245,6 +245,7 @@ mymain(void)
         {"test6", VIR_ARCH_X86_64},
         {"test7", VIR_ARCH_X86_64},
         {"test8", VIR_ARCH_X86_64},
+        {"raspberrypi", VIR_ARCH_ARMV6L},
     };
 
     if (virInitialize() < 0)