Skip to content
  • Vitaly Kuznetsov's avatar
    30d6ff66
    i386/kvm: add NoNonArchitecturalCoreSharing Hyper-V enlightenment · 30d6ff66
    Vitaly Kuznetsov authored
    
    
    Hyper-V TLFS specifies this enlightenment as:
    "NoNonArchitecturalCoreSharing - Indicates that a virtual processor will never
    share a physical core with another virtual processor, except for virtual
    processors that are reported as sibling SMT threads. This can be used as an
    optimization to avoid the performance overhead of STIBP".
    
    However, STIBP is not the only implication. It was found that Hyper-V on
    KVM doesn't pass MD_CLEAR bit to its guests if it doesn't see
    NoNonArchitecturalCoreSharing bit.
    
    KVM reports NoNonArchitecturalCoreSharing in KVM_GET_SUPPORTED_HV_CPUID to
    indicate that SMT on the host is impossible (not supported of forcefully
    disabled).
    
    Implement NoNonArchitecturalCoreSharing support in QEMU as tristate:
    'off' - the feature is disabled (default)
    'on' - the feature is enabled. This is only safe if vCPUS are properly
     pinned and correct topology is exposed. As CPU pinning is done outside
     of QEMU the enablement decision will be made on a higher level.
    'auto' - copy KVM setting. As during live migration SMT settings on the
    source and destination host may differ this requires us to add a migration
    blocker.
    
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20191018163908.10246-1-vkuznets@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    30d6ff66
    i386/kvm: add NoNonArchitecturalCoreSharing Hyper-V enlightenment
    Vitaly Kuznetsov authored
    
    
    Hyper-V TLFS specifies this enlightenment as:
    "NoNonArchitecturalCoreSharing - Indicates that a virtual processor will never
    share a physical core with another virtual processor, except for virtual
    processors that are reported as sibling SMT threads. This can be used as an
    optimization to avoid the performance overhead of STIBP".
    
    However, STIBP is not the only implication. It was found that Hyper-V on
    KVM doesn't pass MD_CLEAR bit to its guests if it doesn't see
    NoNonArchitecturalCoreSharing bit.
    
    KVM reports NoNonArchitecturalCoreSharing in KVM_GET_SUPPORTED_HV_CPUID to
    indicate that SMT on the host is impossible (not supported of forcefully
    disabled).
    
    Implement NoNonArchitecturalCoreSharing support in QEMU as tristate:
    'off' - the feature is disabled (default)
    'on' - the feature is enabled. This is only safe if vCPUS are properly
     pinned and correct topology is exposed. As CPU pinning is done outside
     of QEMU the enablement decision will be made on a higher level.
    'auto' - copy KVM setting. As during live migration SMT settings on the
    source and destination host may differ this requires us to add a migration
    blocker.
    
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20191018163908.10246-1-vkuznets@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Loading