From patchwork Fri Mar 10 10:53:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Like Xu X-Patchwork-Id: 67358 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp801682wrd; Fri, 10 Mar 2023 02:58:14 -0800 (PST) X-Google-Smtp-Source: AK7set8LH/WqTCVYi9fjfuhVWhWoYpAc12kElXZ0Q5mVo93ZrQ6gXpR6V4OHO7ggC/NLdPCe7rTh X-Received: by 2002:a05:6a20:7290:b0:b8:a0e1:2739 with SMTP id o16-20020a056a20729000b000b8a0e12739mr26505078pzk.3.1678445894466; Fri, 10 Mar 2023 02:58:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678445894; cv=none; d=google.com; s=arc-20160816; b=HAyjIZJmri2qNv03Ms9NUWfCpo5VL2eWDoi/l+PXcbkZXY0z5bdSXb1WzfQIfdJAld 9z0SKB3wGQvLUEGSOcMXVM+oIkkRBX9A2nbcifJMP6rEO6YoJDrVpE09/313yuMP1zyJ Wy5C/0MI+YA51hFV2+d38wYUpubeK1w6cvcBxQxX8AsZz62ZZh4MP3DQok312r/p1Igl WTBLYpqTFqfofpsD72L9jBrUAqg0uBUoN4c8QLSrEL9e0piXNHkACC5GeDaXTpcL0jxH SiVGz4AsCl2EEL8tFewA3+GQFe5IxrOzDys1jvKPa8hoQRyUNQieHlkUgJujI03q0c+2 oM3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=TuKuJgCQ/AJK9oB9PxBqMc3IiOj3CxcIYL84H7LCcFk=; b=NDx1yw+hEze/ttRuh6ykOVf5uhsrXiCBDVwpQ6KfF1qMatTkNPC0yw63tuZ1aecqtF Z2JJNk1sEi+qfAs8pXsY/RHwtVJ5Q97G8WVUF3LePp52WyWu/0on0qzvuKgaBnZROI3c emr5+Q/J/3inyI0WvWPVCNvh6RHjP1Xx7+87ZOaJNqMSLr4lwtCGirRWnVJ1AZiZRSzq 5UzvBi0gogkMcpqPy4oXFgXGqaDXb5hZ5t7zFOHPNfPdqR+B+bdDelIJDZ2/aNyk8pL9 1uqQL5ZOTbt0xSUnF5iPuCf4ifFz7DbE4IVw0mPeTWtJ5QQo/TH9D2UY8RgnAwDOFuk2 vc4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=oP2GQg1n; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b194-20020a621bcb000000b0058e1b16c4dcsi1667857pfb.142.2023.03.10.02.58.02; Fri, 10 Mar 2023 02:58:14 -0800 (PST) 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=@gmail.com header.s=20210112 header.b=oP2GQg1n; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230405AbjCJKyq (ORCPT + 99 others); Fri, 10 Mar 2023 05:54:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47638 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230123AbjCJKyU (ORCPT ); Fri, 10 Mar 2023 05:54:20 -0500 Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com [IPv6:2607:f8b0:4864:20::1029]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89DF7FFBFC; Fri, 10 Mar 2023 02:54:10 -0800 (PST) Received: by mail-pj1-x1029.google.com with SMTP id m8-20020a17090a4d8800b002377bced051so9418799pjh.0; Fri, 10 Mar 2023 02:54:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678445650; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TuKuJgCQ/AJK9oB9PxBqMc3IiOj3CxcIYL84H7LCcFk=; b=oP2GQg1nQ2BC5qEovXCSrIuixk9M7JDz47vXnzO3GPvIt/PREYhrbwHZCJ159gplWm kEf/MdQ3U22f/dV6QhsCCc0EuVvtozsi7kbHXuvfiWGNmPyATelxwtqwMZJMrq6MT3UJ GtdLfOIEgrN9KkGfxVcGdyejvlpt2hAflfSLMiq9gU1mKZI+hcdQ35yynxHOArhHU6qp EkA0Jurpw/RCy9c/Zc2oBFd3iKhI4mwtVBR26tFmD+P9Vo0oaeUGCgZxueZ1UftfC/by W0J//ZAqhJutipIEK14pe7Z47BcgtKZH+mauOXI9hx7rx8+hofP9JaM1WnKtJYvMoz/l c9ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678445650; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TuKuJgCQ/AJK9oB9PxBqMc3IiOj3CxcIYL84H7LCcFk=; b=n44JgvwJ+jj2gigOA2zASK8UWi8DzF2mBaAmc+ZLSvx8ta//YHQf6kY9pi8D8QazJd weaFTykVpFG5QTlAg0Hl4d/FPVKpqnXs6xiAqEoup2N/i4PduBJkolCDRC5mZpLXcV0D IX9tCiIFNVk9Mt+NhGRlthckNfxdseFw2tR7joUp2edlSGLq1w1F3BC6Qqzq7/s7p3g3 sPhDw7talQ88qPIRIzsBVzjPam3732jquLFKaksIBSvwMijyFOJYApnCLjOYztZRgq48 US6Jjk8ujTvlwr4wFAWOaQywAZf7ggve+FffMdXsqzBYtnefP4ZIXL43Fq33uzXLoLmx Uk/g== X-Gm-Message-State: AO0yUKX7V8SkcuiURzDFN6erLk1IH5lBHbWTZ3yfLLEu9CXcW5iArwQI d64FAx2sZfzWjFaSp63+7fM= X-Received: by 2002:a17:902:e842:b0:19a:b4a9:9ddb with SMTP id t2-20020a170902e84200b0019ab4a99ddbmr31045713plg.49.1678445649976; Fri, 10 Mar 2023 02:54:09 -0800 (PST) Received: from localhost.localdomain ([103.7.29.32]) by smtp.gmail.com with ESMTPSA id ks3-20020a170903084300b0019cbabf127dsm1174167plb.182.2023.03.10.02.54.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Mar 2023 02:54:09 -0800 (PST) From: Like Xu X-Google-Original-From: Like Xu To: Sean Christopherson Cc: Paolo Bonzini , Ravi Bangoria , kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/5] KVM: x86/pmu: Move the overflow of a normal counter out of PMI context Date: Fri, 10 Mar 2023 18:53:44 +0800 Message-Id: <20230310105346.12302-4-likexu@tencent.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230310105346.12302-1-likexu@tencent.com> References: <20230310105346.12302-1-likexu@tencent.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham 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?1759978082022976944?= X-GMAIL-MSGID: =?utf-8?q?1759978082022976944?= From: Like Xu From the guest's point of view, vPMU's global_status bit update following a counter overflow is completely independent of whether it is emulated in the host PMI context. The guest counter overflow emulation only depends on whether pmc->counter has an overflow or not. Plus the counter overflow generated by the emulation instruction has been delayed and not been handled in the PMI context. This part of the logic can be unified by reusing pmc->prev_counter for a normal counter. However for a PEBS counter, its buffer overflow irq still requires hardware to trigger PMI. Signed-off-by: Like Xu --- arch/x86/kvm/pmu.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/pmu.c b/arch/x86/kvm/pmu.c index 01a6b7ffa9b1..81c7cc4ceadf 100644 --- a/arch/x86/kvm/pmu.c +++ b/arch/x86/kvm/pmu.c @@ -160,7 +160,10 @@ static void kvm_perf_overflow(struct perf_event *perf_event, if (test_and_set_bit(pmc->idx, pmc_to_pmu(pmc)->reprogram_pmi)) return; - __kvm_perf_overflow(pmc, true); + if (pebs_is_enabled(pmc)) + __kvm_perf_overflow(pmc, true); + else + pmc->prev_counter = pmc->counter; kvm_make_request(KVM_REQ_PMU, pmc->vcpu); }