From patchwork Fri Jun 2 01:19:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 102258 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp724760vqr; Thu, 1 Jun 2023 18:26:28 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5iDgPR7eJ/UYjyFVzkM44nz6NC+GzNtwY/DPyZSVE6lrcfOu4egRmmSgtO6+DDWjEUOfVO X-Received: by 2002:a05:622a:54e:b0:3f5:4c06:f4a5 with SMTP id m14-20020a05622a054e00b003f54c06f4a5mr12410021qtx.62.1685669188339; Thu, 01 Jun 2023 18:26:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685669188; cv=none; d=google.com; s=arc-20160816; b=PkMmaCrD2WcQFIFE4Z7S4OR0Kqdqrj3RJBNFby0XY4RNI/kct6Cj49cG7Obp0WdQ/f rPwHg0G32HNej2nw1tWRluVxGGz31qHKC5fhjAP8ZCpSMAyhyRJVGTjLo+5PcntOygAe SPTE8irvh04d4sJoJIJjjc28iqfTCYlSKTSMcJNrreetRsrF/XcL5WC3mJ0TfHCOEVIQ lW2hLQZxRC0/bULTCKCp4A0bvVtuLRTgK3252LK2ZH4mh39eRpJWfsE28q3PaKiTVL62 rYvmz4t9/FNjVpXuEpZOTNt+6CjryStaLvNHNBBYJKUkHrb3SOrd53D06TMptYvl+f4D 9WEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=UkeNsFigxkQFw8vfrE2KyWVToDLxnuVHQRF9ydkx2yI=; b=ZH4Y+ofF3OjRmAaahKoKtG4p5RyWzWkzqlbCAmem/NestCvjH8+zCXzF4i7bxsWBWx mcExQbMHqPl9OX2x91PyXISBTH91Trn7tk+4YMmfB1VmAGheKNE6kpe2B3kKhemmZGe3 H2BVXXvCaKmLwFSqGmoLaJ3dvhLFbP4dJB7xfZGjplcGD55j+5YxyzmznzXsz9t5Dr9v T7RDB0STRdCTxtoy+QRK+EQrh7+nvKfaqKf/naTu/01gGfixgG3pEsVv4HnuYSZWs9m/ 2oJnm1X5dUYuSJi021F8Uy8trzpJtE4zGTLiu19myAffB+yoEVQkrIUr03lZ+6D8r+iG 8O3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=ucuV6+pM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v202-20020a6361d3000000b0054170faca6esi117217pgb.533.2023.06.01.18.26.14; Thu, 01 Jun 2023 18:26:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=ucuV6+pM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233193AbjFBBT3 (ORCPT + 99 others); Thu, 1 Jun 2023 21:19:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232941AbjFBBT1 (ORCPT ); Thu, 1 Jun 2023 21:19:27 -0400 Received: from mail-pf1-x44a.google.com (mail-pf1-x44a.google.com [IPv6:2607:f8b0:4864:20::44a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E3129128 for ; Thu, 1 Jun 2023 18:19:25 -0700 (PDT) Received: by mail-pf1-x44a.google.com with SMTP id d2e1a72fcca58-64d44d14db4so1049807b3a.0 for ; Thu, 01 Jun 2023 18:19:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1685668765; x=1688260765; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=UkeNsFigxkQFw8vfrE2KyWVToDLxnuVHQRF9ydkx2yI=; b=ucuV6+pMNRPpXUp7aE8Ryilvr9OHuYpLnNdhrAeOg67dWXB+Lw2+h2WrFN9CV2ubH7 H1u6BcWTXtlAYtIIEWm/ShZTbmLzO5HSw5MB9el5/XAOZZmoY9iEbqgPsWxsLoI47VM5 i/8r2tAHNLBnksPjocDh75mYs9ZJPJcWibOkHKL49FhBAGDS/1ZvJrGa0aN3Z6ePzuue P7QKvZqozTul+XcdIV/YEfFYG1q7b0ZAT9ZSROp8l4u37x57LrTXhoVjhbf342EUfgHi hx2Z07Ry9d3BBt2Lee8lqWnxnN1xmhh8YX357UIJiYct4osjxLwlfsHoGIBOW/18+PxG EArw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685668765; x=1688260765; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=UkeNsFigxkQFw8vfrE2KyWVToDLxnuVHQRF9ydkx2yI=; b=DEDHN/iQkIsR7fWf4KqsjBpUY8DGy9lbvnnqnz5NK8P25G0ks2nO2H/nmT8zTZcc0n f20O0O3vLNMGgKnI7bXY7Q1Vo0yZxlvhZpYo6g74Nq6KCUGoUeA1oFBG2lNkO2R3EVvN O4IZ1CydlQZRAEaJMcXEbfoZckl9fqIgmfKqBUOHq93vhNHMWjJ+9ml5qKf0hfjbnxR9 BBRX7C18rfl24kUeeJ52n3sPrSOZ2ztwxNBCy2N+nu0WUC5zNskrl2meq3lwPha8AC4y nh4lvMcNsoBy/18worVH7nQR3OGXZbVstiKUlqPomXGJECTBxAfShuv35zdmsRrIhHH7 ro5Q== X-Gm-Message-State: AC+VfDxJY7b4f5uDdXMINye9l0o5RqF/5NG058jDhGlSnjPqmY23TDUx BOe7+eFBVdh9QMvTKUy/OLkwwY4SFy4= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6a00:1c91:b0:64d:602a:2483 with SMTP id y17-20020a056a001c9100b0064d602a2483mr764350pfw.2.1685668765446; Thu, 01 Jun 2023 18:19:25 -0700 (PDT) Reply-To: Sean Christopherson Date: Thu, 1 Jun 2023 18:19:19 -0700 In-Reply-To: <20230602011920.787844-1-seanjc@google.com> Mime-Version: 1.0 References: <20230602011920.787844-1-seanjc@google.com> X-Mailer: git-send-email 2.41.0.rc2.161.g9c6817b8e7-goog Message-ID: <20230602011920.787844-2-seanjc@google.com> Subject: [PATCH 1/2] KVM: x86: Account fastpath-only VM-Exits in vCPU stats From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767552254964823426?= X-GMAIL-MSGID: =?utf-8?q?1767552254964823426?= Increment vcpu->stat.exits when handling a fastpath VM-Exit without going through any part of the "slow" path. Not bumping the exits stat can result in wildly misleading exit counts, e.g. if the primary reason the guest is exiting is to program the TSC deadline timer. Fixes: 404d5d7bff0d ("KVM: X86: Introduce more exit_fastpath_completion enum values") Cc: stable@vger.kernel.org Signed-off-by: Sean Christopherson --- arch/x86/kvm/x86.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index ceb7c5e9cf9e..a609e39b2cb8 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -10754,6 +10754,9 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) exit_fastpath = EXIT_FASTPATH_EXIT_HANDLED; break; } + + /* Note, VM-Exits that go down the "slow" path are accounted below. */ + ++vcpu->stat.exits; } /* From patchwork Fri Jun 2 01:19:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 102259 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp724807vqr; Thu, 1 Jun 2023 18:26:35 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5vk7If1rei9aU245H6zyD5DPJsUDFVNAnfbyklhrhhqEUxR1yqlRS/H0gdjJsoK+9jpprv X-Received: by 2002:a05:6a20:2d0f:b0:10f:5fc:80d5 with SMTP id g15-20020a056a202d0f00b0010f05fc80d5mr11156165pzl.35.1685669195314; Thu, 01 Jun 2023 18:26:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685669195; cv=none; d=google.com; s=arc-20160816; b=uy/iPgJGIZ0qN4pcnqZYa9+v79+7tmsxBGr743KXQ+/U5M+VwlHeLFAps7gEZ+bbpU IAi8PjzqQUjOcZYQsdqfGwvXYv42eInIoVPPdjUxxrc+xUh6S6fid1hUh+uoWATA5fHk twDhZuebV6k8fziqu6rdHZ76AtDYmPRUbxj+N8Yr6u8niBBNmQowEROrFTu2AopvuZ0I XJKuzVEqL2ZnEIx60gpk5wRHh3ZAx8Cu/Yze3QO6xEmdx5Sr18RenncsS3Wt+aE+gT5F ObUrFLMRyskzhQIPzpXLvvztKBwIL3ISqOAN/0uhURNuUJpRVkE1al4u730PJ3J4iaDP wARQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=+pKuNGyydAX4a3/pRiWzlYTFJ55l4Lts1hOT1bxh70Q=; b=ZU63uHzu9w8gbo+ZQkZU7zSm9pi4Up+GWYyC+RoK4P9KhTpKJYT/s+wFTEPnSuUr83 P9p/9XDMa9wByKo5xK7cqhfxMRUdqp7smUv25D415r5YFSBVMsbV2W9KICphnubrlWoc sV/139pJQVCi+7/G0ts/Lp2larV0pUEyey/14Nm2PK+On1Nzq98DjHUQ1jbyrAhXPiTi BW4BsXDy/1F9ziDosDm6Qo5P9ehUokr9OQZySKI7KVFwewGhBohB3q06p6ERqcty4Tcp YMG3KDCr/NtO5vVvfF+jUK2KIsZ4W/AsQoad+PViOkH32ilS0ZJHtsF+Frzo1CT1oQJz xhEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=HuEEKcFT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v14-20020aa799ce000000b006438676feacsi6219438pfi.272.2023.06.01.18.26.20; Thu, 01 Jun 2023 18:26:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=HuEEKcFT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233317AbjFBBTc (ORCPT + 99 others); Thu, 1 Jun 2023 21:19:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44520 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233236AbjFBBT2 (ORCPT ); Thu, 1 Jun 2023 21:19:28 -0400 Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com [IPv6:2607:f8b0:4864:20::549]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A7121138 for ; Thu, 1 Jun 2023 18:19:27 -0700 (PDT) Received: by mail-pg1-x549.google.com with SMTP id 41be03b00d2f7-53feeb13975so687672a12.0 for ; Thu, 01 Jun 2023 18:19:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1685668767; x=1688260767; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=+pKuNGyydAX4a3/pRiWzlYTFJ55l4Lts1hOT1bxh70Q=; b=HuEEKcFTGWsLhgAq0uhw1LFlEWjSIHS//Cctgv5rRa4ZofTh/wptGYGJeUmoHYjLB2 xXLs1Z/XvL8KkU294OqIMI6O4P42EGxJjKQu6tCyzO3A+btITECikf+j+Vwfn/d3gImJ rdkPRZyClxsCI7uYBvgilahYNwU0X79M2XdjTCmGFL1EM2n84bAlr9c8sU925Giuoa1N hDVd3NCAsQTbtpMxrUtD5jctX2rqYE9S5XKsAWqWYsZbNI9EPO9vVsQCG1ObontUDaBy /npPqT+zGybKuj9Nae0msQh1F2s13ilxo1XcmjWBCTkcyHiGiMVsP6MZSmWY8ho6SUfA 2Z+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685668767; x=1688260767; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=+pKuNGyydAX4a3/pRiWzlYTFJ55l4Lts1hOT1bxh70Q=; b=DwTsnBSN/WUAnTQRVSPuK437Ayh8wIDF1I+YYbO/IIxW1htAOZj2sGeeiUII+IU+mA RfLh4jz521f1jkmVJaVCRMceGE9A7RjAXTGU1VQSXN6W2peugqJeSREpKxjfGkEg0Fql eNsiosGdboE7D/zb6v3Dg6R7XXkR4y/g2LEyYhdTLUrfcerFNwh091SsjYTxeEVgKlFw EnmryjDTznd6bn+8zZ+uCyZkEruyTWSZe0DeNX9XSRgWFpzNx9Bxg9V0OgPfhmLA8KAe dSJpidMV3gkL/VMzoKF1UJr5isPzgT6ssE69hK5NuUkj3WOFk9OBb2G+SMr7SkZa0rIo SEfA== X-Gm-Message-State: AC+VfDxRIHxqJRgwKNOuOe0ypZoAteoOsGC4AK01hppkWot7yd6GJtC+ LbHtrmoMGdfeNsI2JliRf3SIQdpLYWg= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a65:6850:0:b0:534:7596:7791 with SMTP id q16-20020a656850000000b0053475967791mr2047702pgt.1.1685668767101; Thu, 01 Jun 2023 18:19:27 -0700 (PDT) Reply-To: Sean Christopherson Date: Thu, 1 Jun 2023 18:19:20 -0700 In-Reply-To: <20230602011920.787844-1-seanjc@google.com> Mime-Version: 1.0 References: <20230602011920.787844-1-seanjc@google.com> X-Mailer: git-send-email 2.41.0.rc2.161.g9c6817b8e7-goog Message-ID: <20230602011920.787844-3-seanjc@google.com> Subject: [PATCH 2/2] KVM: SVM: Invoke trace_kvm_exit() for fastpath VM-Exits From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767552262316602524?= X-GMAIL-MSGID: =?utf-8?q?1767552262316602524?= Move SVM's call to trace_kvm_exit() from the "slow" VM-Exit handler to svm_vcpu_run() so that KVM traces fastpath VM-Exits that re-enter the guest without bouncing through the slow path. This bug is benign in the current code base as KVM doesn't currently support any such exits on SVM. Fixes: a9ab13ff6e84 ("KVM: X86: Improve latency for single target IPI fastpath") Signed-off-by: Sean Christopherson --- arch/x86/kvm/svm/svm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index ca32389f3c36..6845f4f2dc33 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -3418,8 +3418,6 @@ static int svm_handle_exit(struct kvm_vcpu *vcpu, fastpath_t exit_fastpath) struct kvm_run *kvm_run = vcpu->run; u32 exit_code = svm->vmcb->control.exit_code; - trace_kvm_exit(vcpu, KVM_ISA_SVM); - /* SEV-ES guests must use the CR write traps to track CR registers. */ if (!sev_es_guest(vcpu->kvm)) { if (!svm_is_intercept(svm, INTERCEPT_CR0_WRITE)) @@ -4156,6 +4154,8 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu) SVM_EXIT_EXCP_BASE + MC_VECTOR)) svm_handle_mce(vcpu); + trace_kvm_exit(vcpu, KVM_ISA_SVM); + svm_complete_interrupts(vcpu); if (is_guest_mode(vcpu))