On 05/11/19 17:17, Vitaly Kuznetsov wrote: > There is also one additional piece of the information missing. A VM can be > sharing physical cores with other VMs (or other userspace tasks on the > host) so does KVM_FEATURE_TRUSTWORTHY_SMT imply that it's not the case or > not? It is unclear if this changes anything and can probably be left out > of scope (just don't do that). > > Similar to the already existent 'NoNonArchitecturalCoreSharing' Hyper-V > enlightenment, the default value of KVM_HINTS_TRUSTWORTHY_SMT is set to > !cpu_smt_possible(). KVM userspace is thus supposed to pass it to guest's > CPUIDs in case it is '1' (meaning no SMT on the host at all) or do some > extra work (like CPU pinning and exposing the correct topology) before > passing '1' to the guest. > > Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> > --- > Documentation/virt/kvm/cpuid.rst | 27 +++++++++++++++++++-------- > arch/x86/include/uapi/asm/kvm_para.h | 2 ++ > arch/x86/kvm/cpuid.c | 7 ++++++- > 3 files changed, 27 insertions(+), 9 deletions(-) > > diff --git a/Documentation/virt/kvm/cpuid.rst b/Documentation/virt/kvm/cpuid.rst > index 01b081f6e7ea..64b94103fc90 100644 > --- a/Documentation/virt/kvm/cpuid.rst > +++ b/Documentation/virt/kvm/cpuid.rst > @@ -86,6 +86,10 @@ KVM_FEATURE_PV_SCHED_YIELD 13 guest checks this feature bit > before using paravirtualized > sched yield. > > +KVM_FEATURE_TRUSTWORTHY_SMT 14 set when host supports 'SMT > + topology is trustworthy' hint > + (KVM_HINTS_TRUSTWORTHY_SMT). > + Instead of defining a one-off bit, can we make: ecx = the set of known "hints" (defaults to edx if zero) edx = the set of hints that apply to the virtual machine Paolo