On 11/14/2011 09:43 AM, Prerna Saxena wrote:
Hi,
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.
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,
the code is now reworked to dynamically choose the correct handler
function based on guest domain architecture at runtime (def->os.arch).
This patch series consists of 4 patches :
Patch 1/4 : Use sysfs to gather host topology. Presently libvirt
depends on /proc/cpuinfo gather CPU, cores, threads, etc
This is highly architecture dependent. A alternative is
to use sysfs, which provides a platform-neutral interface
to parse CPU topology.
Patch 2/4 : Add PowerPC CPU Driver
Patch 3/4 : Add support for qemu-system-ppc64
Patch 4/4 : Refactor qemu commmand-line generation to separate out arch-
specific options from generic command line.
Changelog from v1:
* Patches 1,2,3 unchanged ; The hacks in Patch 4 of v1 have been
replaced by a new patch to neatly select arch-specific features.
Awaiting comments and feedback,
A few quick comments:
Run 'make syntax-check'. Some cleanup needs to be done.
Also use ATTRIBUTE_UNUSED on variables that are not use, like here when
compiling on x86.
cpu/cpu_powerpc.c: In function 'PowerPCDecode':
cpu/cpu_powerpc.c:50:28: warning: unused parameter 'cpu'
[-Wunused-parameter]
cpu/cpu_powerpc.c:51:36: warning: unused parameter 'data'
[-Wunused-parameter]
cpu/cpu_powerpc.c:52:28: warning: unused parameter 'models'
[-Wunused-parameter]
cpu/cpu_powerpc.c:53:28: warning: unused parameter 'nmodels'
[-Wunused-parameter]
cpu/cpu_powerpc.c:54:27: warning: unused parameter 'preferred'
[-Wunused-parameter]
cpu/cpu_powerpc.c: At top level:
cpu/cpu_powerpc.c:75:5: warning: initialization from incompatible
pointer type
cpu/cpu_powerpc.c: In function 'PowerPCDataFree':
cpu/cpu_powerpc.c:66:1: warning: control reaches end of non-void
function [-Wreturn-type]
nodeinfo.c: In function 'linuxNodeInfoCPUPopulate':
nodeinfo.c:287:5: warning: suggest parentheses around assignment used as
truth value [-Wparentheses]
nodeinfo.c:202:36: warning: unused parameter 'need_hyperthreads'
[-Wunused-parameter]
qemu/qemu_command.c: In function 'qemuBuildX86CommandLine':
qemu/qemu_command.c:5250:17: warning: too many arguments for format
[-Wformat-extra-args]
qemu/qemu_command.c:5201:41: warning: unused parameter 'conn'
[-Wunused-parameter]
qemu/qemu_command.c: In function 'qemuBuildCommandLine':
qemu/qemu_command.c:3264:35: warning: 'qemuCmdFunc' may be used
uninitialized in this function [-Wuninitialized]
Some of the code (part 4) when I looked seemed to have indentation problems.
Stefan