From: Michal Privoznik Date: Tue, 17 Jun 2014 09:22:05 +0000 (+0200) Subject: virNodeParseSocket: Take ARM into account X-Git-Tag: v1.2.6-rc1~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f4dc812c9e76a774f54bafd0230cedc74609d887;p=thirdparty%2Flibvirt.git virNodeParseSocket: Take ARM into account 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 --- diff --git a/cfg.mk b/cfg.mk index 1f076391e6..baaab710a6 100644 --- 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)$$ diff --git a/src/nodeinfo.c b/src/nodeinfo.c index 58691335fa..8fe7adccaf 100644 --- a/src/nodeinfo.c +++ b/src/nodeinfo.c @@ -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 index 0000000000..8857da0bdf --- /dev/null +++ b/tests/nodeinfodata/linux-armv6l-raspberrypi.cpuinfo @@ -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 index 0000000000..146bd073e7 --- /dev/null +++ b/tests/nodeinfodata/linux-armv6l-raspberrypi.expected @@ -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 index 0000000000..573541ac97 --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_id @@ -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 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_siblings @@ -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 index 0000000000..573541ac97 --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/core_siblings_list @@ -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 index 0000000000..3a2e3f4984 --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/physical_package_id @@ -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 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/thread_siblings @@ -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 index 0000000000..573541ac97 --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/cpu0/topology/thread_siblings_list @@ -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 index 0000000000..621e94f0ec --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/cpuidle/current_driver @@ -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 index 0000000000..c35a724b3f --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/cpuidle/current_governor_ro @@ -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 index 0000000000..573541ac97 --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/kernel_max @@ -0,0 +1 @@ +0 diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/offline b/tests/nodeinfodata/linux-raspberrypi/cpu/offline new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/offline @@ -0,0 +1 @@ + diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/online b/tests/nodeinfodata/linux-raspberrypi/cpu/online new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/online @@ -0,0 +1 @@ +0 diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/possible b/tests/nodeinfodata/linux-raspberrypi/cpu/possible new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/possible @@ -0,0 +1 @@ +0 diff --git a/tests/nodeinfodata/linux-raspberrypi/cpu/present b/tests/nodeinfodata/linux-raspberrypi/cpu/present new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/nodeinfodata/linux-raspberrypi/cpu/present @@ -0,0 +1 @@ +0 diff --git a/tests/nodeinfotest.c b/tests/nodeinfotest.c index 650a674dd6..3c76e5dfc1 100644 --- a/tests/nodeinfotest.c +++ b/tests/nodeinfotest.c @@ -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)