From nobody Tue Oct 22 22:30:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1718219619; cv=pass; d=zohomail.com; s=zohoarc; b=bWiIDRI94PWGnL9On+7xWkTMpi5bY3/KMLgz0WmIAnhtAnqqlIxx6ybBOtMvkmqcUdGYKEfX+KXs3LWcEoBFEw66uO3Y2bikfOhspuOmol9NswnYyCXtq4vY1I0y/rGDWkUkfqSDcWB1/ldkIYAnP3gz/3drfKnKRir+n1QGyKY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1718219619; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ldQ7tdc/hx5FIhbeFo0Ik1F9+l691o6Tm7Tc+hZMZHA=; b=kWE/NC83457BHtBo8U3LpDK5LdCHd6r0F53SE3ubE3rL/MivZiRtuJCM62KxQS/qsrnT2np1C4rgMFSFWtpRizO72Y1MaMowem6uehBjHlqD5Iz4x7N2hbSLDkIBpnRWrp07T5kX7JwRsEouNflL1hTIYlR7DNuhmKRNcO4yGkI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1718219619529122.03325782414049; Wed, 12 Jun 2024 12:13:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sHTOw-0005R6-4x; Wed, 12 Jun 2024 15:12:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sHTOu-0005Qy-Nr for qemu-devel@nongnu.org; Wed, 12 Jun 2024 15:12:53 -0400 Received: from mail-co1nam11on20601.outbound.protection.outlook.com ([2a01:111:f403:2416::601] helo=NAM11-CO1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sHTOq-00035k-OH for qemu-devel@nongnu.org; Wed, 12 Jun 2024 15:12:52 -0400 Received: from BYAPR05CA0071.namprd05.prod.outlook.com (2603:10b6:a03:74::48) by PH7PR12MB6907.namprd12.prod.outlook.com (2603:10b6:510:1b9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.36; Wed, 12 Jun 2024 19:12:41 +0000 Received: from SJ1PEPF00002311.namprd03.prod.outlook.com (2603:10b6:a03:74:cafe::1d) by BYAPR05CA0071.outlook.office365.com (2603:10b6:a03:74::48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.20 via Frontend Transport; Wed, 12 Jun 2024 19:12:41 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ1PEPF00002311.mail.protection.outlook.com (10.167.242.165) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7677.15 via Frontend Transport; Wed, 12 Jun 2024 19:12:41 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 12 Jun 2024 14:12:39 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gZgRtYvcZbcs/4UElVEYRKMn2eRD5TuoHw8qjO2138rK8uKd8QmF5zIgaoKCkeoVvT2b3bQTcRADDSVKSeMpX8L8429c/bkj0In7ZFXN9Eby94p3WRmnKy1kja8L8yz5BGr1BI7Nm2/qLY1wYKxmMMoz+dGG5P/L5+nbN+/dl8BRaIQmO2x4DdSRDE9HevObBY1pt3jkFJcl3YatyK8MvAvCSjLAfM7xLgud57cptIgrYnkyDOayJvb0QSixruQOMc0cX7+i+u4UCHcld7cbFUs23MIqabl5r8C+dag1tVeYE4m/M9W4k6oFjmcv487KSzSk6A4yRhHNxUfN7CoDwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ldQ7tdc/hx5FIhbeFo0Ik1F9+l691o6Tm7Tc+hZMZHA=; b=Qx/97uD+Xc3+AmOvEbIBeQeJ2PvoNyRynx2VlxATZFhwVLw87IdHP52vSUHL1Q/2QnlgZrO3ernrKAZZtT/wGozBVh2IsBH7Zd9HRxKdJxAocD3UcCtYCGTcUf2MVuiTbpw9kAWCF8tqUuXPXuTASMDsbvfmeoH3WylBIEmG/eJoATm3VT1MFqFW1OFSKBQRaFXHO+303er4MFUQHr1jw8m/K6q0a2Ru8bCkWBCUIudZgBZUaV9R3qxcsn24dYJUkHMgBy+QPb4XDc6Lk2CqtLVwz31kn1vJzb0EhYYjoB+O21CaRoWyb/WCn1Wd4LBKmYK3uSTeiv/7rOKyAdr8fg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=redhat.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ldQ7tdc/hx5FIhbeFo0Ik1F9+l691o6Tm7Tc+hZMZHA=; b=PD414hw0A1xUXfmMfi0ITs/dkXlQeGeV/OpYqoiv7ANw44IpCqKTpOpU+J6wuKuGHBpOopH06rPHiV9D3dvnDZNXzQfnP3lABX/ifXKa5Y0r5uodFqeViDHfa0QXzu1givrs8FEm0SjCXbDH4wowHzCHNsqE+bUesx7sNGcG0VM= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C From: Babu Moger To: CC: , , Subject: [PATCH 2/4] i386/cpu: Add PerfMonV2 feature bit Date: Wed, 12 Jun 2024 14:12:18 -0500 Message-ID: <6f83528b78d31eb2543aa09966e1d9bcfd7ec8a2.1718218999.git.babu.moger@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00002311:EE_|PH7PR12MB6907:EE_ X-MS-Office365-Filtering-Correlation-Id: 69d75e5a-1d1f-414d-14a5-08dc8b13a1e0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230034|36860700007|376008|1800799018|82310400020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?bXJYwTfqAmEboHzI9C9nHGZgu72cMrLYhdcXOK6mctrxtWC/dKVX4wzQXB4Q?= =?us-ascii?Q?TnAachef2T/SwPQk3At0rnRy7Mxv+m/jH9+YuaJ66FpliVHIez2g8C1OmDF6?= =?us-ascii?Q?yQb4P58scRCnaL0adeKogI4DsWqBSMd9JmIYxAxonYLZf9eu6qoVS/I+HFSF?= =?us-ascii?Q?zY1+6weknsWpvSNYsGj7zRsGN+DZsxTuR3G3VeaTAPrpaUtiQmZp6SSGTRRQ?= =?us-ascii?Q?iIXDepVXSUdqvBXbag62+R3YP4K9f1SwTjA2rm/Kvsbfn2eOcYP2v+sF9J+C?= =?us-ascii?Q?qNl2IbrE+2dNv/dUNYRIPTf7McPkdZUDXodMyY6uUPTwNo5CUoLIKruf3cw5?= =?us-ascii?Q?lWF5GpCkWoypSC9f6vTiirb/1+aQ7Jd6y3aUQAx1fhsTngEBwAxwjddXfJ0t?= =?us-ascii?Q?x7vOam77nq1UVebZH0FIZkBOM41+0AS3eUIT7hYBVDI3FzkG2j/Sm2gQH623?= =?us-ascii?Q?GrItWXKMxlAQifAda/U/E4ojwzvYeXBpFfc+tcLzQvFEdDQxs61ZfghB/dRM?= =?us-ascii?Q?ox1putB0ZZy1OEWAoxadP5V30Hqfg51sKHhJL8PmDXxHGGvpTossEiEvgyT0?= =?us-ascii?Q?VwwXqUqKoIRVLdw2a3F/40/oeYBQYjSck3plVorJbILLa233hjfv9g9Rkf8A?= =?us-ascii?Q?dUDQB152FFAHoUed0mJC5hOJt9vPjijXyVZIASnaIrod+8pLAYfS1t6lSp8Q?= =?us-ascii?Q?ZuOrji/RmHkQhpg5AL0X8WK9TaHAUoySXPQsrRxngQHAHKZ209OQuFLS5rtK?= =?us-ascii?Q?/E1PZz4DB7Spkux8TK5vaj16ODYTBdPcnAvSUL08IWIFhLHjEFbfdKG8aFTU?= =?us-ascii?Q?J+4+a+8sgJ0ewX57MQsGAe67A8C/GFg0+daBJr4D8Ama51FRbSxwc6stH/er?= =?us-ascii?Q?YVcG/NFCgh1RgWdzqdQbT7Jjk8WTcxU7+bmdqRRZXNnc3WIifTtx8nF2cY1X?= =?us-ascii?Q?jy9663jZzbffBYl9kCOHll5hWAoAb7b0UQQUHQSgsvxe6sNY2a1xLnNkDQif?= =?us-ascii?Q?CvZ0yNBsaTeCRtFkIcVgIM9YTDMCAMcUUki3Ae1jGv67qS9ZGEg5Nz1Kag5A?= =?us-ascii?Q?B+r8LjkuS/0ONVuYH8H6LfHpaqbgVpdZ04LtMFZeWblGfKsROKqoT/hzRE2c?= =?us-ascii?Q?3RatT/vRK8YnjnViizaeWCZlSvrFv/D4PZyiONmKsokhiGYHUskkK2AQiiGp?= =?us-ascii?Q?UxWicvVdnKi9CrzloOXUWfc7IKAz1NNAiE0aaRgKVZ4j+6e22n248XUMIOKB?= =?us-ascii?Q?/U9s/QCIdRGUV1dzNMpmKnPh3r0MCXe3FyAuxWQPclSf/P8I5pHDDXi534KI?= =?us-ascii?Q?B/QL4BxOlX0zfm0BqjFusI9WaHCgIJNAzHSvoiBvzLmJkfbMI1YGBrS6alTH?= =?us-ascii?Q?q95hBXYqt4LgyeQzuJtFmRC2HaHNw+2uPD3pvIzebgXw3I6Sfw=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230034)(36860700007)(376008)(1800799018)(82310400020); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2024 19:12:41.2943 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 69d75e5a-1d1f-414d-14a5-08dc8b13a1e0 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00002311.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6907 Received-SPF: permerror client-ip=2a01:111:f403:2416::601; envelope-from=Babu.Moger@amd.com; helo=NAM11-CO1-obe.outbound.protection.outlook.com X-Spam_score_int: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.143, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1718219620092100003 Content-Type: text/plain; charset="utf-8" From: Sandipan Das CPUID leaf 0x80000022, i.e. ExtPerfMonAndDbg, advertises new performance monitoring features for AMD processors. Bit 0 of EAX indicates support for Performance Monitoring Version 2 (PerfMonV2) features. If found to be set during PMU initialization, the EBX bits can be used to determine the number of available counters for different PMUs. It also denotes the availability of global control and status registers. Add the required CPUID feature word and feature bit to allow guests to make use of the PerfMonV2 features. Signed-off-by: Sandipan Das Signed-off-by: Babu Moger Reviewed-by: Zhao Liu --- target/i386/cpu.c | 26 ++++++++++++++++++++++++++ target/i386/cpu.h | 4 ++++ 2 files changed, 30 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 86a90b1405..7f1837cdc9 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -1228,6 +1228,22 @@ FeatureWordInfo feature_word_info[FEATURE_WORDS] =3D= { .tcg_features =3D 0, .unmigratable_flags =3D 0, }, + [FEAT_8000_0022_EAX] =3D { + .type =3D CPUID_FEATURE_WORD, + .feat_names =3D { + "perfmon-v2", NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + }, + .cpuid =3D { .eax =3D 0x80000022, .reg =3D R_EAX, }, + .tcg_features =3D 0, + .unmigratable_flags =3D 0, + }, [FEAT_XSAVE] =3D { .type =3D CPUID_FEATURE_WORD, .feat_names =3D { @@ -6998,6 +7014,16 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, *edx =3D 0; } break; + case 0x80000022: + *eax =3D *ebx =3D *ecx =3D *edx =3D 0; + /* AMD Extended Performance Monitoring and Debug */ + if (kvm_enabled() && cpu->enable_pmu && + (env->features[FEAT_8000_0022_EAX] & CPUID_8000_0022_EAX_PERFM= ON_V2)) { + *eax =3D CPUID_8000_0022_EAX_PERFMON_V2; + *ebx =3D kvm_arch_get_supported_cpuid(cs->kvm_state, index, co= unt, + R_EBX) & 0xf; + } + break; case 0xC0000000: *eax =3D env->cpuid_xlevel2; *ebx =3D 0; diff --git a/target/i386/cpu.h b/target/i386/cpu.h index ba7f740392..03378da8fa 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -611,6 +611,7 @@ typedef enum FeatureWord { FEAT_8000_0007_EDX, /* CPUID[8000_0007].EDX */ FEAT_8000_0008_EBX, /* CPUID[8000_0008].EBX */ FEAT_8000_0021_EAX, /* CPUID[8000_0021].EAX */ + FEAT_8000_0022_EAX, /* CPUID[8000_0022].EAX */ FEAT_C000_0001_EDX, /* CPUID[C000_0001].EDX */ FEAT_KVM, /* CPUID[4000_0001].EAX (KVM_CPUID_FEATURES) */ FEAT_KVM_HINTS, /* CPUID[4000_0001].EDX */ @@ -986,6 +987,9 @@ uint64_t x86_cpu_get_supported_feature_word(FeatureWord= w, /* Automatic IBRS */ #define CPUID_8000_0021_EAX_AUTO_IBRS (1U << 8) =20 +/* Performance Monitoring Version 2 */ +#define CPUID_8000_0022_EAX_PERFMON_V2 (1U << 0) + #define CPUID_XSAVE_XSAVEOPT (1U << 0) #define CPUID_XSAVE_XSAVEC (1U << 1) #define CPUID_XSAVE_XGETBV1 (1U << 2) --=20 2.34.1