From patchwork Tue Jan 24 23:49:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 47971 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp7464wrn; Tue, 24 Jan 2023 16:17:01 -0800 (PST) X-Google-Smtp-Source: AMrXdXssEU19m1bQh7VK+2KAGQvMBqb6cOZVDdhqyatC51oOC2p8manI9GpTNUKrPIsidtExAVb+ X-Received: by 2002:a05:6a20:e608:b0:b6:64f8:4c8b with SMTP id my8-20020a056a20e60800b000b664f84c8bmr27986804pzb.54.1674605820771; Tue, 24 Jan 2023 16:17:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674605820; cv=none; d=google.com; s=arc-20160816; b=Vk1pOSZv2b/MS9qm0VAhqe9B03Gg1ikHOdgzUC0QFMA+zxrUSTgRPXlrMA6FZc9ZaG Qhn8LewKHSva1cqJrcHkcvqr4UfYNmsmsA2slFwgVCamPIwnAbiC7L2kk9SfXttYhf84 VHG4KasIlDlT4l3snBPpJzMvLFhIlFxYcG5UnUB65Gc9I1Q4Ejy8oa7Q+S+T+5/g3cxq m/WAi2neRYfB9QFcLWmf6AeX/ylT7ac5Oka63Ytk7nAXfT6jqT2G+MnGVtpHZ/PTHQLN glaGQl9P66/1BrVtsH88e39dZJwZXdellHW7WNTH2V8rEEoKCTXZkbQEMLJ7hEmUbLar B2OA== 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=cSFedQsv7Wc1M6mfIq8Uerd1CseDG+3+LjpR3/a1jI4=; b=bIKQY0UZQYSeDrLv/tFmBI4/IBIuzNU9vUz1iKlITk7XTzm5I/VrF+b2fe5tnoN90k uDCaM31Ypj6hX5BSOEOEL0VsJgfqvOLY9USFqdQm7pWcLVlxJ3+n7JeI0qTsFARU7g1q S6MPit2LvJ2qqz8I9092yokF12hqbMLhK6+UBLgaKeiMO2kgO2JucA4aypKPxq99tyU5 tuOLLfJqkn0JcQV/6xok3iAi5e4dsru6ZIYFe2Q+Na1K/Tq2qkfM2WFNWhpL1g8jhBO/ BSDTKxaeBJYJo7QvOGb+VIog03WOOeaKrW2UK05eE/3sy8e/pCz1pms9aYmRArrtG7Bl Stgw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=Vp+bCCyR; 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 k68-20020a633d47000000b004acdd4a8240si3680771pga.193.2023.01.24.16.16.28; Tue, 24 Jan 2023 16:17:00 -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=@google.com header.s=20210112 header.b=Vp+bCCyR; 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 S234484AbjAXXth (ORCPT + 99 others); Tue, 24 Jan 2023 18:49:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49146 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234400AbjAXXtX (ORCPT ); Tue, 24 Jan 2023 18:49:23 -0500 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 8AD9D49022 for ; Tue, 24 Jan 2023 15:49:20 -0800 (PST) Received: by mail-pg1-x549.google.com with SMTP id e184-20020a6369c1000000b0049de6cfcc40so7519180pgc.19 for ; Tue, 24 Jan 2023 15:49:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; 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=cSFedQsv7Wc1M6mfIq8Uerd1CseDG+3+LjpR3/a1jI4=; b=Vp+bCCyRCOzXxx9AZRk/kLf2yoM9R2H7MV3TG8iO4ixZfrmXyu3VH5OT9URCnFT6Ao SnOE2UHK2AnZMfppSvxPBExJYZ4Fxe9T9DFqELJjMzTPwm3THgO6m/pOUi4AULV2sZ1b 5BNeuoAAa7KPpu6EiXS3gy8WFApTYM5YBCvJTG6h76zjPe9l+cRD0Zp1KCyUns7fe6nX VX1PrSIkSYQxk0xiGxVaWwC1UOgh09tR1C/pu6yybMIHQDasONsVEtBIkxqac5Q4XQoh QATfefxt08qKbI42PfLX9jDT1Nf1BnuHKNDKAqU040eTQcTdnTjdSThoIhCikZ1drvSv bb7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=cSFedQsv7Wc1M6mfIq8Uerd1CseDG+3+LjpR3/a1jI4=; b=fUQLB5PwoVt4kkBGvUmTTcDZIMWjCx1l4ys+ntLOvMnQ3wEfQAgM+oeZyLgMsu0QTv gsaFrLiyzjTa/TuGAsrgTKgmEVVW79kAXiz1eJS8xH/O1vSIGUsJ02BzleRNwGymLI40 bI7qn91jR4U9W+vuFl3Ir9rixBoXWr1GIwnJhZFtu8s8kwmzJXwS4V/UEGCqJS8ObLlc T+EvUCD9n9/IJewza4Vk6MWYqf3MJcbvbBMpk87W9cvUYF3npOI1gklYSU5PyZ1ixFbB RcRRqv1Xr4dTSMfWyzTVfLTycbTWjHh2sAX8JHoNQ4Oy2sjd38WUu6QE2EoajobsXM8Y x98g== X-Gm-Message-State: AFqh2ko3NQjkk49Q7KScQ4gVZweJ4XZfzK4wnwNlR/KvbyxHHqHHBtN0 nlTxumFP7vNoK8KrRgqgVjAjYZs4ELs= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:bd97:b0:192:9e63:e2bc with SMTP id q23-20020a170902bd9700b001929e63e2bcmr3138979pls.11.1674604159781; Tue, 24 Jan 2023 15:49:19 -0800 (PST) Reply-To: Sean Christopherson Date: Tue, 24 Jan 2023 23:49:03 +0000 In-Reply-To: <20230124234905.3774678-1-seanjc@google.com> Mime-Version: 1.0 References: <20230124234905.3774678-1-seanjc@google.com> X-Mailer: git-send-email 2.39.1.456.gfc5497dd1b-goog Message-ID: <20230124234905.3774678-5-seanjc@google.com> Subject: [PATCH 4/6] KVM: x86/pmu: Don't tell userspace to save PMU MSRs if PMU is disabled From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini , Vitaly Kuznetsov Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Aaron Lewis , Weijiang Yang , Like Xu 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,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?1755951472941907189?= X-GMAIL-MSGID: =?utf-8?q?1755951472941907189?= Omit all PMU MSRs from the "MSRs to save" list if the PMU is disabled so that userspace doesn't waste time saving and restoring dummy values. KVM provides "error" semantics (read zeros, drop writes) for such known-but- unsupported MSRs, i.e. has fudged around this issue for quite some time. Keep the "error" semantics as-is for now, the logic will be cleaned up in a separate patch. Cc: Aaron Lewis Cc: Weijiang Yang Signed-off-by: Sean Christopherson --- arch/x86/kvm/x86.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 9b6e1af63531..25da2cc09e55 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -7081,8 +7081,10 @@ static void kvm_init_msr_list(void) for (i = 0; i < ARRAY_SIZE(msrs_to_save_base); i++) kvm_probe_msr_to_save(msrs_to_save_base[i]); - for (i = 0; i < ARRAY_SIZE(msrs_to_save_pmu); i++) - kvm_probe_msr_to_save(msrs_to_save_pmu[i]); + if (enable_pmu) { + for (i = 0; i < ARRAY_SIZE(msrs_to_save_pmu); i++) + kvm_probe_msr_to_save(msrs_to_save_pmu[i]); + } for (i = 0; i < ARRAY_SIZE(emulated_msrs_all); i++) { if (!static_call(kvm_x86_has_emulated_msr)(NULL, emulated_msrs_all[i]))