OSDN Git Service

KVM: PPC: Book3S HV: Provide mode where all vCPUs on a core must be the same VM
authorPaul Mackerras <paulus@ozlabs.org>
Wed, 12 Sep 2018 00:42:12 +0000 (10:42 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Fri, 5 Oct 2018 05:55:06 +0000 (15:55 +1000)
commitaa2278644ae54ff762ce33f9c9563d759e9cca9f
treefc55e858903a21c302862c1dc5ac5b3b46f7a6e6
parent1006284c5e411872333967b1970c2ca46a9e225f
KVM: PPC: Book3S HV: Provide mode where all vCPUs on a core must be the same VM

This adds a mode where the vcore scheduling logic in HV KVM limits itself
to scheduling only virtual cores from the same VM on any given physical
core.  This is enabled via a new module parameter on the kvm-hv module
called "one_vm_per_core".  For this to work on POWER9, it is necessary to
set indep_threads_mode=N.  (On POWER8, hardware limitations mean that KVM
is never in independent threads mode, regardless of the indep_threads_mode
setting.)

Thus the settings needed for this to work are:

1. The host is in SMT1 mode.
2. On POWER8, the host is not in 2-way or 4-way static split-core mode.
3. On POWER9, the indep_threads_mode parameter is N.
4. The one_vm_per_core parameter is Y.

With these settings, KVM can run up to 4 vcpus on a core at the same
time on POWER9, or up to 8 vcpus on POWER8 (depending on the guest
threading mode), and will ensure that all of the vcpus belong to the
same VM.

This is intended for use in security-conscious settings where users are
concerned about possible side-channel attacks between threads which could
perhaps enable one VM to attack another VM on the same core, or the host.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
arch/powerpc/kvm/book3s_hv.c