From patchwork Sat Jun 3 01:10:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 102730 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1400963vqr; Fri, 2 Jun 2023 18:13:22 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6V8Qhr8XusbrkNWnqf6UHq6G6iNxwaA13c2kXyS1pk5Rp6p7plMWHXxOrMFWdq1lFH16sf X-Received: by 2002:a05:6a20:7fa4:b0:112:1e0d:14ae with SMTP id d36-20020a056a207fa400b001121e0d14aemr452742pzj.7.1685754802411; Fri, 02 Jun 2023 18:13:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685754802; cv=none; d=google.com; s=arc-20160816; b=JvH3WYkWKsS4TGKpUS4Hpub5aMiD6KUOuHIxpilAfZcBVIaS9a0Ppgm9Qrl7QXVJIQ 8R0aZ0Yv5RntPoS/QxHaw56DTpZhDZZK1klVT8DaEWM6Puda0lKIuo3Mx41g77LM2BzW uUjQ25sm7mjKy9LiWOu777N5dE7eVsMBkvI7+Ien/WA+L3dkJ6FOU228XC8PzlTfqD2Q SLlPdCH9fQg2TDPhSOnoaTR7z0mA+GN/JdYNRsqkeZP5vWsemK8EZFWSchm2MwBfdCzJ Jq/kFZ98tBIy+hbWFTXGg8D7lUqJqbRm0qEDnbhWnna2+Kr4/AL4HLRq4RCyzOXeQrUy vSfg== 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=7zN3kqHNvCh1Otwz2V0BbGSa363179wUZXnCVirEw3o=; b=msSrqhUBTGmUvD1WN+7sAwXCxVwFH3t4meexKdRnrq9QtBxV/EFv98OTe6eoY26Dvq deQwL32YcLaf5YAs9CnogZIMRNEcDcGb0sqbn85Q8kQEWeOO2Ht67qbU9mAMYcAraYxM FpoNuihId3oLIQmKFt+5YbKhKuerXdd9pJj0JSDXHlwCs8Ih9upFuuYLOnG9tY1Zyuha QT4+zVKYAJZgwurZVx4bNtMMlOUxHUYqliakW4c8lUjf37RcjxE5GbAgee1xo/7wogFM mJS832wsy9538PtnUrFH8CfqQ8Cn3BMxsPZRumTL6zSXsFj8FBVeA5bQTjcle55prlxo ZeCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=fQ2ArVgd; 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 k24-20020a63f018000000b0053f9a37c607si1725742pgh.711.2023.06.02.18.13.10; Fri, 02 Jun 2023 18:13:22 -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=fQ2ArVgd; 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 S237241AbjFCBL7 (ORCPT + 99 others); Fri, 2 Jun 2023 21:11:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43444 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237190AbjFCBLk (ORCPT ); Fri, 2 Jun 2023 21:11:40 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CF1A710E5 for ; Fri, 2 Jun 2023 18:11:21 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-bacfa4ef059so4002674276.2 for ; Fri, 02 Jun 2023 18:11:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1685754680; x=1688346680; 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=7zN3kqHNvCh1Otwz2V0BbGSa363179wUZXnCVirEw3o=; b=fQ2ArVgdVKtsRKDC1mFspyqAB1rKkpyxJ+tHZ4JpKxAOHj30bXemR+G/PUS39TSKjC jUj2rKGBVe8m8+UkbZ62AU666oR5aZcP67CvMfwcT2u1Ko6o3HLtZTXFIysnLaeIi4g0 +4fadOqdCCssLPqH+5i4HiE6nzRVXRJnojd6SXAKZqEmMfDp0fTSljRTbDxnnE2dfrOy xVb39pj77YBjOORmEYsq9UAJ8XpCZHE7LVxFdaSUrZiVajML8qgMWHh9h06CRWX9Vvz2 /wWQLRqmRNykDOtmJVA6Q3gjlGX+X4HjnRqZrEQj0IfvLKmE2kFuiKRALuPdeGrA+Hj8 dY5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685754680; x=1688346680; 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=7zN3kqHNvCh1Otwz2V0BbGSa363179wUZXnCVirEw3o=; b=Krx8Wal2DQpehaEtIhhPrllNeKvsQQgiIsBb5RIXX+CqvjCJEd1hyhvT/wgqGm+I9n E+SB7xsURKzLqTyWCVAoSAwcdHTY8sJ5B9Fb5Rekxu0LZ7UUdIWSIs/bocRWBob2OqbQ 28kKRg6fLo15vl2ty0KEdEE865IhzBsppI5xqJv2/PVnV1OqptAJSE+EBw6WfoSyBqXs Yqx9WdQGkts+4W1m8letcOXIwW+6Y5C0z+4RrJExeetaKqinI7Cml92CUN7VQHr7ABok uBJe/0b32QnLhaYiPSpnHZ1dPkVb3BzM11vzglTf9t85vS9fsg+lIAxM0NKRvxHpcjTE FUxw== X-Gm-Message-State: AC+VfDzK8Uzjl/mdtYDI772VEfkc4pcy0N3/kaBXQl6Vxk/5hDjsEXQh NqJqXCvBbzyea7w8IMhv4Ogsreh/X98= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6902:4aa:b0:ba8:939b:6574 with SMTP id r10-20020a05690204aa00b00ba8939b6574mr2808892ybs.12.1685754680252; Fri, 02 Jun 2023 18:11:20 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 2 Jun 2023 18:10:56 -0700 In-Reply-To: <20230603011058.1038821-1-seanjc@google.com> Mime-Version: 1.0 References: <20230603011058.1038821-1-seanjc@google.com> X-Mailer: git-send-email 2.41.0.rc2.161.g9c6817b8e7-goog Message-ID: <20230603011058.1038821-11-seanjc@google.com> Subject: [PATCH v7 10/12] KVM: x86/cpuid: Add a KVM-only leaf to redirect AMD PerfMonV2 flag From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Like Xu , Like Xu , Jim Mattson , Sandipan Das 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=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?1767642027758447216?= X-GMAIL-MSGID: =?utf-8?q?1767642027758447216?= From: Like Xu Add a KVM-only leaf for AMD's PerfMonV2 to redirect the kernel's scattered version to its architectural location, e.g. so that KVM can query guest support via guest_cpuid_has(). Suggested-by: Sean Christopherson Signed-off-by: Like Xu [sean: massage changelog] Signed-off-by: Sean Christopherson --- arch/x86/kvm/reverse_cpuid.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/x86/kvm/reverse_cpuid.h b/arch/x86/kvm/reverse_cpuid.h index a5717282bb9c..56cbdb24400a 100644 --- a/arch/x86/kvm/reverse_cpuid.h +++ b/arch/x86/kvm/reverse_cpuid.h @@ -15,6 +15,7 @@ enum kvm_only_cpuid_leafs { CPUID_12_EAX = NCAPINTS, CPUID_7_1_EDX, CPUID_8000_0007_EDX, + CPUID_8000_0022_EAX, NR_KVM_CPU_CAPS, NKVMCAPINTS = NR_KVM_CPU_CAPS - NCAPINTS, @@ -47,6 +48,9 @@ enum kvm_only_cpuid_leafs { /* CPUID level 0x80000007 (EDX). */ #define KVM_X86_FEATURE_CONSTANT_TSC KVM_X86_FEATURE(CPUID_8000_0007_EDX, 8) +/* CPUID level 0x80000022 (EAX) */ +#define KVM_X86_FEATURE_PERFMON_V2 KVM_X86_FEATURE(CPUID_8000_0022_EAX, 0) + struct cpuid_reg { u32 function; u32 index; @@ -74,6 +78,7 @@ static const struct cpuid_reg reverse_cpuid[] = { [CPUID_7_1_EDX] = { 7, 1, CPUID_EDX}, [CPUID_8000_0007_EDX] = {0x80000007, 0, CPUID_EDX}, [CPUID_8000_0021_EAX] = {0x80000021, 0, CPUID_EAX}, + [CPUID_8000_0022_EAX] = {0x80000022, 0, CPUID_EAX}, }; /* @@ -108,6 +113,8 @@ static __always_inline u32 __feature_translate(int x86_feature) return KVM_X86_FEATURE_SGX_EDECCSSA; else if (x86_feature == X86_FEATURE_CONSTANT_TSC) return KVM_X86_FEATURE_CONSTANT_TSC; + else if (x86_feature == X86_FEATURE_PERFMON_V2) + return KVM_X86_FEATURE_PERFMON_V2; return x86_feature; }