Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp1094102pxb; Fri, 21 Jan 2022 09:43:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJxFtE6WvJ27HLJv6GB/wxhPofXSX/JCTwYIihBpEL2WZUv/8BQ854AsXGu/uND3eGJvB/cA X-Received: by 2002:a65:63c2:: with SMTP id n2mr3593452pgv.609.1642787010913; Fri, 21 Jan 2022 09:43:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642787010; cv=none; d=google.com; s=arc-20160816; b=sbHIBIxQjRPnpHHQhFRjjmJrRh32oNQ55AT6UmsJSBWk6lu3VKd/GRiHmFw9Q+w6DV scl0Kxcfj1HpH3rZQs5MH7R9OArc7zRmcaf1Q14R7jTNbcMNXGo3dso3+wK1ddKI0wPK 2cXNlTAChBuqHiZif0WAB0uj4VTS1gAKzMZNCpgta2IDn43sH9T1FdjOtjEgWDv1MDpw e2IF6KSdzRMpIaurcr67dpOmyLFf/quPDIMyra/qEOYrnPJhQSMCPref3t0i/is4a2iL 1UPN/0x17+IjG6StpFsAeVg9tSMyGNFTAfBh4HgdEeXt+lVpvWGa7+CpLyd4LGQ6ujHi mAzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=o7eCy47p8PgyTrOH5oES78YY4Yx66VgoOxIZhjYdi4s=; b=Rss0G5TGxQuPsrlyD0iiR6zKzyL/Q3CviMEq5IV8Wc7kOlQ7epXFPqXXC+64Yt4DCH oIO3HTiuHbgzePeREIIAR5+/coJPOlgHUmu6mxVM2QCTrZ15VF4nFnSJCoHMGZedcTns K8wcuM4SJqj0tCj9HQbwM7Qy1dc1BQ8lZ9Mryxpes8n4ludGO3IEqdecJNI5oFwA8IWr 2qx6bZRRm2XYgbwcYu8UVrmuud2ylfHufmUjyzQLI6VP9q/L4YkTSrnl69ZqDf+6ew7p Qi4sAGakrnl78BSgMI2vOI/L9E9YBMrvxt3SqxW/YQxFUevqYCGr6AFVv3u+1NDGsH8/ 5b6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=jl2DNY2l; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i10si7192152pgp.867.2022.01.21.09.43.18; Fri, 21 Jan 2022 09:43:30 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=jl2DNY2l; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351921AbiASHMV (ORCPT + 99 others); Wed, 19 Jan 2022 02:12:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346462AbiASHMU (ORCPT ); Wed, 19 Jan 2022 02:12:20 -0500 Received: from mail-ot1-x32e.google.com (mail-ot1-x32e.google.com [IPv6:2607:f8b0:4864:20::32e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BA4FDC061574; Tue, 18 Jan 2022 23:12:20 -0800 (PST) Received: by mail-ot1-x32e.google.com with SMTP id v8-20020a9d6048000000b005960952c694so1849300otj.12; Tue, 18 Jan 2022 23:12:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=o7eCy47p8PgyTrOH5oES78YY4Yx66VgoOxIZhjYdi4s=; b=jl2DNY2l03Hn739PZbt1QyBMPoc+BjoqY6cKv7uJnJfgaL6TBDarXSUEkkZUXujpE2 ovVuyCnAYU+WNitEsjwJNNNCroUah20OjR7R2h9qDYFlp19uEdb8YA0V9CE62V09I057 RnviYjVGmBruwusx/CT8rhBRF4S9u3sR1vcT1D/sNvmWErrQggJ77prMpaSJFICoB70w RPyEsofSaHOmMxbYQBMFNHRuQWSr/54FXNGDE4esGqsRx0JQupQi56JHiTWxqhMFgyM2 E7LKVSkzir1DbTunVzPPJ4TaBcM/d914v8eqiUuiwUxUzmcbHPUBxQXoRV0C0ywv++yL bzbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=o7eCy47p8PgyTrOH5oES78YY4Yx66VgoOxIZhjYdi4s=; b=6INuRiesyhrAZd261cUuBRZ1d+NODNkEwSeOhvsJVcEGbgcpjvrH4Hj5hSC006PEIy g4Is9/FeCUtumQfLxBWs5Z+ZrG58KkRmbByWH91gZvAlwYLTK+3JNx5DB19CkwEMs8mO apXjJYO+FmKY1ZisG7PPvBL5k0uZqeVkCzF3dket6RRor9FKWMLLroCEMkkWiDf91oY0 6OxZu/6KMITIQBVmsWQUkJefcFBo8D22vZjacOqFepbQayyhqFmevoH9egihWSsCT7XZ H+aA52E5ZrG4tTbZ/sFjgKNhhKcgGmYjUE+q7mHurDQ/GUcj/99ohYu2wJ3CBOvz9VYC 9u8Q== X-Gm-Message-State: AOAM533FTMf18bJ8YBeKoogEkhLUKKW90NsCPuu3juzoeqNT8pKoqaoK aikj2OZmFMv83YNVQg7+MpUGQ7VEccymstgsW7A= X-Received: by 2002:a9d:7212:: with SMTP id u18mr9062189otj.145.1642576340166; Tue, 18 Jan 2022 23:12:20 -0800 (PST) MIME-Version: 1.0 References: <1641471612-34483-1-git-send-email-wanpengli@tencent.com> In-Reply-To: <1641471612-34483-1-git-send-email-wanpengli@tencent.com> From: Wanpeng Li Date: Wed, 19 Jan 2022 15:12:09 +0800 Message-ID: Subject: Re: [PATCH v2] KVM: LAPIC: Enable timer posted-interrupt when mwait/hlt is advertised To: Paolo Bonzini Cc: LKML , kvm , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Aili Yao Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org kindly ping, :) On Thu, 6 Jan 2022 at 20:21, Wanpeng Li wrote: > > From: Wanpeng Li > > As commit 0c5f81dad46 (KVM: LAPIC: Inject timer interrupt via posted interrupt) > mentioned that the host admin should well tune the guest setup, so that vCPUs > are placed on isolated pCPUs, and with several pCPUs surplus for *busy* housekeeping. > It is better to disable mwait/hlt/pause vmexits to keep the vCPUs in non-root > mode. However, we may isolate pCPUs for other purpose like DPDK or we can make > some guests isolated and others not, we may lose vmx preemption timer/timer fastpath > due to not well tuned setup, and the checking in kvm_can_post_timer_interrupt() > is not enough. Let's guarantee mwait/hlt is advertised before enabling posted-interrupt > interrupt. vmx preemption timer/timer fastpath can continue to work if both of them > are not advertised. > > Reported-by: Aili Yao > Cc: Aili Yao > Cc: Sean Christopherson > Signed-off-by: Wanpeng Li > --- > v1 -> v2: > * also check kvm_hlt_in_guest since sometime mwait is disabled on host > > arch/x86/kvm/lapic.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c > index f206fc3..fdb7c81 100644 > --- a/arch/x86/kvm/lapic.c > +++ b/arch/x86/kvm/lapic.c > @@ -113,7 +113,8 @@ static inline u32 kvm_x2apic_id(struct kvm_lapic *apic) > > static bool kvm_can_post_timer_interrupt(struct kvm_vcpu *vcpu) > { > - return pi_inject_timer && kvm_vcpu_apicv_active(vcpu); > + return pi_inject_timer && kvm_vcpu_apicv_active(vcpu) && > + (kvm_mwait_in_guest(vcpu->kvm) || kvm_hlt_in_guest(vcpu->kvm)); > } > > bool kvm_can_use_hv_timer(struct kvm_vcpu *vcpu) > -- > 2.7.4 >