Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp918806pxj; Sat, 8 May 2021 02:33:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw06QJKFfgp75FrQJIw8fBSvHo31V0T3Sp+/MhQfPokTV7Blt3sjhwnxkT2kKXwJFWVPY3c X-Received: by 2002:a65:5c4a:: with SMTP id v10mr14524681pgr.73.1620466385724; Sat, 08 May 2021 02:33:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620466385; cv=none; d=google.com; s=arc-20160816; b=wjUK7pGRkFkTCRqHC6biViv1CfrGCkb51HSnVtUSwAWLB5UHw1jf6ZqZKezViZxjaq k5eX0CuyQrzFRw+gUp7XWHkWZkcY5ylfJruX+CTOHvrIeJ9S6Z4uGDasVW9ciHryHPFY vgvRENdMXsJ/X4wCzBQ6zJRRhWCVr/ZxqOz2vtLKwWZCx4T++GprKEYMYvNsED6X5E01 I7rIPgSPXV7g7q/dMR9NEYLSXys7DbCkbFTi8UWBmekO+Qh18YM6AipUJrE7/PqJ3QGD bzHXXoaZB44jLuRJjdAZsgbd4VvEqV0Ml5NlrzeM5XfNJbqYKRokJN9r9Nt+g19LHCQM 6GLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=1CGHW9g1U7mxu/mVGb43UumaGiz2ve3vaE4gPvsroXY=; b=AHmFv5eSk9y0mhwMp9B+R8dAnHRUe5zHlGyYNbFA8fhLet+4SwYfr/fPfm4vHkcoLO 9oBmXReesoGUQSmjAvAP4Ufc9sKv8rwdI0aFZCgukxilka69FvhH6BbVP2bunBeNnSJx GgWMHnIKnC5dhzzXz3VDLxV0oGpVYWqB9aeNzTXXYIY+/SjY4E7AohkdMhOYHbf9tkoo joTy6VzlZUwbj5RFNP7Uj40WmzQqDxdll23haiISI5n3cYP9sTo3RRzg6V/OZ1L5zzD6 7FuZQvc8j74Ns4VJjxzjx6rFxnlgkNF4CuLYGmojQcMlSurOtplnJA6VCWFsynYh4L/2 ZfWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=pbDNw1Fx; 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 o10si10169471pjw.38.2021.05.08.02.32.53; Sat, 08 May 2021 02:33:05 -0700 (PDT) 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=20161025 header.b=pbDNw1Fx; 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 S230387AbhEHJdO (ORCPT + 99 others); Sat, 8 May 2021 05:33:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229583AbhEHJdM (ORCPT ); Sat, 8 May 2021 05:33:12 -0400 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98132C061756; Sat, 8 May 2021 02:32:10 -0700 (PDT) Received: by mail-pl1-x62d.google.com with SMTP id b21so6498435plz.0; Sat, 08 May 2021 02:32:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=1CGHW9g1U7mxu/mVGb43UumaGiz2ve3vaE4gPvsroXY=; b=pbDNw1Fx99ba7QrZGEIm3/SSQPA+bqJOrtp8ZLb9V73V8MxilDw19X7PFvb6cmZHlr tWsyk85UfQdF1vdn/Gzb1CZITBpP0i/KxS2W/2wEL9L+l2I1kUagiHakVRr2SaxxnbEm QTu2kzhqPT6bab/UqOaOoLw4vMasOeqqHD7kX4VfKoZ1iM0xlIEsyO+L+Xsz4+0TiEKg 8YQhDFEbjSbSfWzYzsCfUkybNrPTk5djolvDN2iWu1z+nll5XaU+/17OvAjhbfTA62+v Hl5LOzFPTW0bvHLcqWx+SMDAVN1rasBs3Q5jSaJp/lbeclLW4QFCxLzvrFuKu+r3O7sM SI6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=1CGHW9g1U7mxu/mVGb43UumaGiz2ve3vaE4gPvsroXY=; b=nx8kNBusuWfeiTqbEqLZ+J4E9UnFXKc95WDiOdop1r5NQhRmAwawxGDi6RuoUmmWd3 LUzV5w8/5lwEnBQsV0CK+mbtdjIUxx0sVfU5t3LpHTPG/LQbKCLv7/ENjHZNNAEW9GTj uK8818l/yQvKPxH4daMW6yJmJkO7/ZQRxObEB0W1FreSkkEQgBZMKHoIW3grDvp6DbWa oLKOdn4Txe9o0IMhT9prveN44ZrpOXDwFQfT9k7k5NlGm1ntfVFfDotbe6iPMWpOL1L3 Xg4LL1u9K6YPGVMjnKjKvsQzPtVHLpwGlX+oWhXg+gdpiLNIt6GhuBDEYCk6pSPZjFke /JDA== X-Gm-Message-State: AOAM530ndE7Xt/iTv/EeSdX5MI29FInSofknkn+YerdDL3Gaci5NJaAp 9qfSo+GxSV704inmSFxBtgO0wRR3Vq0= X-Received: by 2002:a17:902:bc88:b029:ee:7ef1:e770 with SMTP id bb8-20020a170902bc88b02900ee7ef1e770mr14621444plb.19.1620466329986; Sat, 08 May 2021 02:32:09 -0700 (PDT) Received: from localhost.localdomain ([103.7.29.6]) by smtp.googlemail.com with ESMTPSA id f3sm40437765pjo.3.2021.05.08.02.32.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 08 May 2021 02:32:09 -0700 (PDT) From: Wanpeng Li X-Google-Original-From: Wanpeng Li To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Paolo Bonzini , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , stable@vger.kernel.org Subject: [PATCH 3/3] KVM: X86: Fix vCPU preempted state from guest point of view Date: Sat, 8 May 2021 17:31:50 +0800 Message-Id: <1620466310-8428-3-git-send-email-wanpengli@tencent.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1620466310-8428-1-git-send-email-wanpengli@tencent.com> References: <1620466310-8428-1-git-send-email-wanpengli@tencent.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Wanpeng Li Commit 66570e966dd9 (kvm: x86: only provide PV features if enabled in guest's CPUID) avoids to access pv tlb shootdown host side logic when this pv feature is not exposed to guest, however, kvm_steal_time.preempted not only leveraged by pv tlb shootdown logic but also mitigate the lock holder preemption issue. From guest point of view, vCPU is always preempted since we lose the reset of kvm_steal_time.preempted before vmentry if pv tlb shootdown feature is not exposed. This patch fixes it by clearing kvm_steal_time.preempted before vmentry. Fixes: 66570e966dd9 (kvm: x86: only provide PV features if enabled in guest's CPUID) Cc: stable@vger.kernel.org Signed-off-by: Wanpeng Li --- arch/x86/kvm/x86.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index c0244a6..c38e990 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -3105,7 +3105,8 @@ static void record_steal_time(struct kvm_vcpu *vcpu) st->preempted & KVM_VCPU_FLUSH_TLB); if (xchg(&st->preempted, 0) & KVM_VCPU_FLUSH_TLB) kvm_vcpu_flush_tlb_guest(vcpu); - } + } else + st->preempted = 0; vcpu->arch.st.preempted = 0; -- 2.7.4