pseries: Support SMT systems for KVM Book3S-HV
commite97c363638b32943afc4bd2845f4081496fabfbc
authorDavid Gibson <david@gibson.dropbear.id.au>
Thu, 29 Sep 2011 21:39:10 +0000 (29 21:39 +0000)
committerAlexander Graf <agraf@suse.de>
Sun, 30 Oct 2011 16:11:53 +0000 (30 17:11 +0100)
treefefb166bb145fce87486ccd7f82c66c03162dfd1
parenteeae2e7b52255dae0976a027b6e11274990c708d
pseries: Support SMT systems for KVM Book3S-HV

Alex Graf has already made qemu support KVM for the pseries machine
when using the Book3S-PR KVM variant (which runs the guest in
usermode, emulating supervisor operations).  This code allows gets us
very close to also working with KVM Book3S-HV (using the hypervisor
capabilities of recent POWER CPUs).

This patch moves us another step towards Book3S-HV support by
correctly handling SMT (multithreaded) POWER CPUs.  There are two
parts to this:

 * Querying KVM to check SMT capability, and if present, adjusting the
   cpu numbers that qemu assigns to cause KVM to assign guest threads
   to cores in the right way (this isn't automatic, because the POWER
   HV support has a limitation that different threads on a single core
   cannot be in different guests at the same time).

 * Correctly informing the guest OS of the SMT thread to core mappings
   via the device tree.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
hw/spapr.c
target-ppc/helper.c
target-ppc/kvm.c
target-ppc/kvm_ppc.h