diff options
author | Paul Mackerras <paulus@ozlabs.org> | 2017-06-21 08:01:27 +0200 |
---|---|---|
committer | Paul Mackerras <paulus@ozlabs.org> | 2017-06-22 03:25:31 +0200 |
commit | 2ed4f9dd19c0f76f7fb56c4b201696d29149325c (patch) | |
tree | dc386c28edb9885280d62e1fb51fe2dd5b693a94 /arch/powerpc/kvm/powerpc.c | |
parent | KVM: PPC: Book3S HV: Exit guest upon MCE when FWNMI capability is enabled (diff) | |
download | linux-2ed4f9dd19c0f76f7fb56c4b201696d29149325c.tar.xz linux-2ed4f9dd19c0f76f7fb56c4b201696d29149325c.zip |
KVM: PPC: Book3S HV: Add capability to report possible virtual SMT modes
Now that userspace can set the virtual SMT mode by enabling the
KVM_CAP_PPC_SMT capability, it is useful for userspace to be able
to query the set of possible virtual SMT modes. This provides a
new capability, KVM_CAP_PPC_SMT_POSSIBLE, to provide this
information. The return value is a bitmap of possible modes, with
bit N set if virtual SMT mode 2^N is available. That is, 1 indicates
SMT1 is available, 2 indicates that SMT2 is available, 3 indicates
that both SMT1 and SMT2 are available, and so on.
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Diffstat (limited to 'arch/powerpc/kvm/powerpc.c')
-rw-r--r-- | arch/powerpc/kvm/powerpc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c index ccaa7a407c15..b14736f3870b 100644 --- a/arch/powerpc/kvm/powerpc.c +++ b/arch/powerpc/kvm/powerpc.c @@ -566,6 +566,16 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) r = threads_per_subcore; } break; + case KVM_CAP_PPC_SMT_POSSIBLE: + r = 1; + if (hv_enabled) { + if (!cpu_has_feature(CPU_FTR_ARCH_300)) + r = ((threads_per_subcore << 1) - 1); + else + /* P9 can emulate dbells, so allow any mode */ + r = 8 | 4 | 2 | 1; + } + break; case KVM_CAP_PPC_RMA: r = 0; break; |