lkml.org 
[lkml]   [2022]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH AUTOSEL 5.16 12/28] x86/kvm: Don't use pv tlb/ipi/sched_yield if on 1 vCPU
    From
    On 3/1/22 21:13, Sasha Levin wrote:
    > From: Wanpeng Li <wanpengli@tencent.com>
    >
    > [ Upstream commit ec756e40e271866f951d77c5e923d8deb6002b15 ]
    >
    > Inspired by commit 3553ae5690a (x86/kvm: Don't use pvqspinlock code if
    > only 1 vCPU), on a VM with only 1 vCPU, there is no need to enable
    > pv tlb/ipi/sched_yield and we can save the memory for __pv_cpu_mask.
    >
    > Signed-off-by: Wanpeng Li <wanpengli@tencent.com>
    > Message-Id: <1645171838-2855-1-git-send-email-wanpengli@tencent.com>
    > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    > Signed-off-by: Sasha Levin <sashal@kernel.org>
    > ---
    > arch/x86/kernel/kvm.c | 9 ++++++---
    > 1 file changed, 6 insertions(+), 3 deletions(-)
    >
    > diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
    > index 59abbdad7729c..ff3db164e52cb 100644
    > --- a/arch/x86/kernel/kvm.c
    > +++ b/arch/x86/kernel/kvm.c
    > @@ -462,19 +462,22 @@ static bool pv_tlb_flush_supported(void)
    > {
    > return (kvm_para_has_feature(KVM_FEATURE_PV_TLB_FLUSH) &&
    > !kvm_para_has_hint(KVM_HINTS_REALTIME) &&
    > - kvm_para_has_feature(KVM_FEATURE_STEAL_TIME));
    > + kvm_para_has_feature(KVM_FEATURE_STEAL_TIME) &&
    > + (num_possible_cpus() != 1));
    > }
    >
    > static bool pv_ipi_supported(void)
    > {
    > - return kvm_para_has_feature(KVM_FEATURE_PV_SEND_IPI);
    > + return (kvm_para_has_feature(KVM_FEATURE_PV_SEND_IPI) &&
    > + (num_possible_cpus() != 1));
    > }
    >
    > static bool pv_sched_yield_supported(void)
    > {
    > return (kvm_para_has_feature(KVM_FEATURE_PV_SCHED_YIELD) &&
    > !kvm_para_has_hint(KVM_HINTS_REALTIME) &&
    > - kvm_para_has_feature(KVM_FEATURE_STEAL_TIME));
    > + kvm_para_has_feature(KVM_FEATURE_STEAL_TIME) &&
    > + (num_possible_cpus() != 1));
    > }
    >
    > #define KVM_IPI_CLUSTER_SIZE (2 * BITS_PER_LONG)

    NACK

    Not really necessary.

    Paolo

    \
     
     \ /
      Last update: 2022-03-01 21:19    [W:4.081 / U:0.968 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site