On 11/29/2011 09:55 AM, Prerna Saxena wrote:
Recent development in KVM for 64-bit Power ISA Book3S machines,
allows
users to run multiple KVM guest instances on POWER7 and PPC970
processor based systems. Also qemu-system-ppc64 has been enhanced to
support a new machine type "pseries" suitable for Power Book3S machines.
This addition effectively brings the KVM+qemu combination to run
multiple guest instances on a Power Book3S machine.
I applied this patch series on an x86 machine and ran 'make check'. I
now have two tests failing due to it not making use of the proc
filesystem entries anymore...
TEST: nodeinfotest
Expect 39 'CPUs: 2, MHz: 2800, Nodes: 1, Cores: 2
'
Actual 39 'CPUs: 8, MHz: 2800, Nodes: 1, Cores: 4
'
!Expect 39 'CPUs: 2, MHz: 2211, Nodes: 1, Cores: 2
'
Actual 39 'CPUs: 8, MHz: 2211, Nodes: 1, Cores: 4
'
!Expect 39 'CPUs: 4, MHz: 1595, Nodes: 1, Cores: 2
'
Actual 39 'CPUs: 8, MHz: 1595, Nodes: 1, Cores: 4
'
!Expect 39 'CPUs: 4, MHz: 1000, Nodes: 1, Cores: 4
'
Actual 39 'CPUs: 8, MHz: 1000, Nodes: 1, Cores: 4
'
!Expect 39 'CPUs: 4, MHz: 2814, Nodes: 1, Cores: 2
'
Actual 39 'CPUs: 8, MHz: 2814, Nodes: 1, Cores: 4
'
!Expect 39 'CPUs: 4, MHz: 1000, Nodes: 1, Cores: 2
'
Actual 39 'CPUs: 8, MHz: 1000, Nodes: 1, Cores: 4
'
! 6 FAIL
FAIL: nodeinfotest
[...]
TEST: qemuargv2xmltest
/bin/sh: line 5: 875 Segmentation fault (core dumped)
abs_top_builddir=`cd '..'; pwd` abs_top_srcdir=`cd '..'; pwd`
abs_builddir=`pwd` abs_srcdir=`cd '.'; pwd` CONFIG_HEADER="`cd '..';
pwd`/config.h" PATH="`cd '..'; pwd`/daemon:`cd '..';
pwd`/tools:`cd
'..'; pwd`/tests:$PATH" SHELL="/bin/sh"
LIBVIRT_DRIVER_DIR="/root/tmp/libvirt-acl/src/.libs" LC_ALL=C ${dir}$tst
FAIL: qemuargv2xmltest
I had 'export DEBUG_TESTS=1' set to see the debugging info on the
nodeinfo test.
The qemuargv2xmltest fails due to the following:
0x00000038ec32e334 in __strcmp_ssse3 () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install
augeas-libs-0.9.0-1.fc14.x86_64 avahi-libs-0.6.27-8.fc14.x86_64
cyrus-sasl-lib-2.1.23-12.fc14.x86_64 dbus-libs-1.4.0-3.fc14.x86_64
device-mapper-libs-1.02.63-2.fc14.x86_64 glibc-2.13-2.x86_64
gnutls-2.8.6-2.fc14.x86_64 keyutils-libs-1.2-6.fc12.x86_64
krb5-libs-1.8.4-2.fc14.x86_64 libcap-ng-0.6.5-1.fc14.x86_64
libcom_err-1.41.12-6.fc14.x86_64 libcurl-7.21.0-10.fc14.x86_64
libgcc-4.5.1-4.fc14.x86_64 libgcrypt-1.4.5-4.fc13.x86_64
libgpg-error-1.9-1.fc14.x86_64 libidn-1.18-1.fc14.x86_64
libpcap-1.1.1-3.fc14.x86_64 libselinux-2.0.96-6.fc14.1.x86_64
libsepol-2.0.41-3.fc14.x86_64 libssh2-1.2.4-1.fc14.x86_64
libtasn1-2.7-1.fc14.x86_64 libudev-161-10.fc14.x86_64
libxml2-2.7.7-3.fc14.x86_64 libxslt-1.1.26-3.fc14.x86_64
netcf-libs-0.1.9-1.fc14.x86_64 nspr-4.8.8-1.fc14.x86_64
nss-3.12.10-4.fc14.x86_64 nss-softokn-freebl-3.12.10-1.fc14.x86_64
nss-util-3.12.10-1.fc14.x86_64 numactl-2.0.3-8.fc13.x86_64
openldap-2.4.23-10.fc14.x86_64 openssl-1.0.0e-1.fc14.x86_64
xen-libs-4.0.2-1.fc14.x86_64 yajl-1.0.7-3.fc13.x86_64
zlib-1.2.5-2.fc14.x86_64
(gdb) up
#1 0x000000000042d56c in qemuParseCommandLine (caps=0x9b94a0,
progenv=0x9badc0, progargv=0x9bae00, pidfile=0x0, monConfig=0x0,
monJSON=0x0)
at qemu/qemu_command.c:6694
6694 if (STREQ(def->os.arch, "i686")||STREQ(def->os.arch,
"x86_64"))
(gdb) print def->os
$1 = {type = 0x0, arch = 0x0, machine = 0x0, nBootDevs = 0, bootDevs =
{0, 0, 0, 0}, bootmenu = 0, init = 0x0, kernel = 0x0, initrd = 0x0,
cmdline = 0x0, root = 0x0, loader = 0x0, bootloader = 0x0,
bootloaderArgs = 0x0, smbios_mode = 0, bios = {useserial = 0}}
I looked on a RHEL 5 machine (i686). The sysfs at least is there.
Stefan
Libvirt continues to be the key interface to configure and manage
the
KVM guest instances on x86. This patch set is an effort to enable
libvirt to support KVM guest configuration and management on Power Book3S
machines.
Based on community discussion around the earlier version, this patch
series augments the present 'kvm' driver to support PowerPC-KVM based
guests.Since some of the supported devices vary between architectures,
libvirt must be capable of choosing supported device backends and
defaults for each architecture in qemu.
To check if qemu supports a certain feature, libvirt at present parses
the -help string which is generated by running the qemu binary with the
'-h' argument. This approach is gated by QEMU's inherent limitation.
When generating the list of allowed options with the '-h' flags, qemu
today blindly lists all options defined for any architecture/platform
instead of doing any arch-specific checking. This tricks libvirt into
assuming a much bigger set of host capabilities than is actually
available.
Ideally, it would be good to have qemu specify a list of devices for a
given architecture and platform which libvirt can parse to understand
supported capabilities for that guest.
As a part of this patchset, there is an attempt to cleanly bifurcate
libvirt code and to remove x86-specific assumptions from generic qemu
commandline code.
Series Description:
-------------------
This patch series consists of 5 patches :
Patch 1/5 : Use sysfs to gather host topology in place of /proc/cpuinfo.
Patch 2/5 : Add PowerPC CPU Driver
Patch 3/5 : Add support for qemu-system-ppc64
Patch 4/5 : Clean up x86-specific assumptions from generic qemu code.
Patch 5/5 : Add address family "spapr-vio"
Changelog:
---------
** v1->v2 :
* Patches 1,2,3 unchanged ; The hacks in Patch 4 of v1 replaced by a
new patch to neatly select arch-specific features.
** v2->v3 :
* Patches 1,2,3 have minor cleanups ; Patch 4 no longer has an
arch-specific handler routine. It is now replaced by a much simpler
patch that merely removes x86/pc-specific assumptions from libvirt.
** v3->v4 :
* Patches 1,2,3,4 unchanged ; patch 5 is a new addition from Michael Ellerman
that adds a new device-tree based addressing mechanism for the 'pseries'
guest.