From patchwork Thu Dec 1 15:36:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Moger, Babu" X-Patchwork-Id: 28431 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp329442wrr; Thu, 1 Dec 2022 07:37:04 -0800 (PST) X-Google-Smtp-Source: AA0mqf5I9EvdtdMKIDWzGK3GkKauW7F0URwbxJFH5Eeuc/BEFMRlasg69FJzLZ0i2rUdrKqnD6K8 X-Received: by 2002:a63:5a56:0:b0:46e:9bac:17f with SMTP id k22-20020a635a56000000b0046e9bac017fmr43738465pgm.420.1669909024149; Thu, 01 Dec 2022 07:37:04 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1669909024; cv=pass; d=google.com; s=arc-20160816; b=hH7O3VcDX9d8O6NsSdscfSOvljt+iRMZzk9m9Y99YMFlg/DOaT4lXTEOLDkN3Jatyi P86U2c2IOaC1HQW7UWgsi+dxH2u8q4DVKDJd89WggU11BDnfaPmkWAZguh/gL/KveFtq qDsu/mJym3BaMNY9FtwsZPzmioClnhESnL20VPru6sBQ5oVXZqE+XCaqeH12Gn5FcalO A1lEjrjWb1gy393lMXl7f4KIReQB//r+mRjLnWW8twbJGgFfCNl5K3AuOqhyHdAAhuZL aGtd7uGsfvE6Ypba4Y/BpvD0DVYfDuGS/coELWoL/4vBfQPEuueMFw9IoVlnD5/pgfoh YJeQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:cc:to:from :subject:dkim-signature; bh=VgNbgOAPy8YioWxJmvlFQuLCkJsioW4F/62dgyZePsA=; b=bi00lNcniW8Veonp7uf/LdPRaKq/N7vUTpCUmOD440PNNiNVCThj7wYmuZbVB3ZXEb lNx3ITjzSqKGpqgAZpEK5vZH73UiZ5+HA65ZYxcMqcBgmZiiFFIBCVy4QhNRNi+CPVFR uQuI66ebFUcxw1NxBxYM+1TY472tQAUBssI+wgcUoJheQrAPH9w3jyEiCwwnkA10+EgY JmdgOdbVr0K+2e6wy5cewWDYOtIRIGDPHgPNpB5aV3yKbqRkQjYS2xQSCrgk1KTcfImS GRXsvribyRvnKnXUMC3NsAYlFhKAFkI4bwcYi9uokE3hwIcDL/0mFw1dxQqdl6mF8NiY zTag== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=d4JRI4wP; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o23-20020a63fb17000000b00461bf5f86fdsi4893196pgh.403.2022.12.01.07.36.50; Thu, 01 Dec 2022 07:37:04 -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=@amd.com header.s=selector1 header.b=d4JRI4wP; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231969AbiLAPgd (ORCPT + 99 others); Thu, 1 Dec 2022 10:36:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48210 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231941AbiLAPgZ (ORCPT ); Thu, 1 Dec 2022 10:36:25 -0500 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2042.outbound.protection.outlook.com [40.107.101.42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C104063F9; Thu, 1 Dec 2022 07:36:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ehCz4xXHgOhlTA1U2U6v93RNOuNYhhD8rLPy6q5IVlOB0fXxr+MF3GAMvAYzg8TcAOZtKqde6XZqgD3zMlrj9IaJzM5BfyCp5X0BSVP2QazYbYXnFJoFvHCyeeVPv387C+Tmi8YoZBD3VgCB02U+UyJzWcYOLSdXyAl75TMFg1cnOw7Q0eBvhGUUzCfBz7q8wT2BF3Ux9vGAvLjSLNHBNcO2tW+jWF6jtjZ8j4vtfwIZQUuvXETtgLBmcpo5NZQguleFZOyI/YToKVRTwLMP/a+uKgXeRD/jgFlONGbXTdqtOiS8Y9jgC6YVC6sT9TbnMtBW4bgr9juyF6li3iuuMg== 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=VgNbgOAPy8YioWxJmvlFQuLCkJsioW4F/62dgyZePsA=; b=eGN40sbEwAcpVt25NabQRwdmDaXbu5jEwzM5/0FKOAs9r9qQJAmkGrD9M10qBYne1be9y3meUs0YctbNo2lA11/nY5fmM/GXX9jHdQqTz0B7MDRighjnEcJ3A/HCRPLxGfpNUPXnayKXp6vdEjYEOlOvTnU150xFtLaJrsEsnV219bHzritfvHZRQabctpiwHX8YsuMNRZJHSqNMnfwXQBTnOT9CVh4c1yBAJG42/akRjYUlLUDePisdnv0JXlcANz7xoz0hsmiAsZunfd3d66wfWQ3782KjNkrA93lb/su96R5F3utCw8ufNcvyTR5xavnCxt/H9tpWoy5N/nOHpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linutronix.de 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 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=VgNbgOAPy8YioWxJmvlFQuLCkJsioW4F/62dgyZePsA=; b=d4JRI4wPWMMMz1wLoE0L8HS6yQTBFwVczvXbfxCiEHe1zW7YlqWmQWbzXogDSQsxndJkajVA/P8krkp/LVgasjd8lon2PCYI6Cu6kajszokwzmCcDo8a4g4hcoXeaI7jbiyT0oI94sNEn3xCnqmz2wCQbeCybR/cV90jJm4iKn4= Received: from MW4PR03CA0197.namprd03.prod.outlook.com (2603:10b6:303:b8::22) by CY5PR12MB6550.namprd12.prod.outlook.com (2603:10b6:930:42::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Thu, 1 Dec 2022 15:36:23 +0000 Received: from CO1NAM11FT046.eop-nam11.prod.protection.outlook.com (2603:10b6:303:b8:cafe::ab) by MW4PR03CA0197.outlook.office365.com (2603:10b6:303:b8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.8 via Frontend Transport; Thu, 1 Dec 2022 15:36:22 +0000 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 (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 Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1NAM11FT046.mail.protection.outlook.com (10.13.174.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5880.8 via Frontend Transport; Thu, 1 Dec 2022 15:36:22 +0000 Received: from [127.0.1.1] (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.2375.34; Thu, 1 Dec 2022 09:36:20 -0600 Subject: [PATCH v9 03/13] x86/cpufeatures: Add Bandwidth Monitoring Event Configuration feature flag From: Babu Moger To: , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Date: Thu, 1 Dec 2022 09:36:19 -0600 Message-ID: <166990897968.17806.16187773270520553795.stgit@bmoger-ubuntu> In-Reply-To: <166990882621.17806.16780480657453071426.stgit@bmoger-ubuntu> References: <166990882621.17806.16780480657453071426.stgit@bmoger-ubuntu> User-Agent: StGit/1.1.dev103+g5369f4c MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT046:EE_|CY5PR12MB6550:EE_ X-MS-Office365-Filtering-Correlation-Id: 98cd4971-5ad4-440e-b2e9-08dad3b1cd03 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9/9R15tZnmTzk4hAzC/k/4t8yNyYCK4xrRX8oTAOPLWOaX2Bhhr4tYXtdCVvv0s0rYaqQcG4Hu40KvAbSCiNMaQzKt0211pJEhhrvnG9OEwJ1BzNvhzgRZHwBpAmQ9E4h/DGq0KaONazjkUug17W0lRXCAt5TFJVXLPwusn41eOQkEBl321u5LI0eD+RCFQToCyucNA/dBIiYiwbBh7lXywi6jpwDChgV2YwB8vTYWa0vNd+f5VNiz8R8JrAwmiFlNoFjEZiElFHDo/aKxjS5N/gOPmzsaW/yAALq8Y6deMqISPZJ+q0bH74zrvUP7EB7+673OSMSFmdEY8PLYUYyantuBH6FMxMgoqB5QjFmddZE3iPdzk0qOLI4XX/oyrjOd0TnPvlyjl5r5GmTBtKyhTDXb97V5JMUJKEtk3TG8Q2A6PrP6XGVwyumN7RYWSz4mzUMF7Tw0W3ZDDeoJo7q72V6/YUKJssdJvTsMjsyYcjc3+2N9MSeaEH2WDqDfPfsCptuyEXpHBYv7FQQjqFUcY1Frk5d9mRVPWML6mMJtiaMf/PorGOVExFTkmFLsODfsEaqv/oxZEuHYpOOPrQrwqUPEDnFxm6dZta5xE6DFHPkvQIzu4jp8i5l9kz6kG6raTSNtnlWEdBvGDynu3UWNSIFw8VrTbGSl0R3sbe1eAIzEw64IncfLKSx53APRWm0wqsUlDQu0Gj/gW0oFLjbLm94unlGVz//jxTSUIogksO+Wr79SPb1Df1dRHlZPy8iC3Gt/A9laU6Lqy4/Jk+Le9FIb2mILbBNWJAhfY9LL9iJUf9+8UwutGNoe9T3IpEev2iZG3q8LIoZv0Xo9m9ow== 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:(13230022)(7916004)(4636009)(136003)(39860400002)(346002)(376002)(396003)(451199015)(36840700001)(46966006)(40470700004)(40480700001)(16576012)(7406005)(103116003)(5660300002)(966005)(8936002)(7416002)(316002)(86362001)(478600001)(40460700003)(54906003)(83380400001)(47076005)(70586007)(44832011)(8676002)(33716001)(16526019)(4326008)(110136005)(82740400003)(356005)(9686003)(336012)(82310400005)(186003)(81166007)(70206006)(426003)(2906002)(26005)(41300700001)(36860700001)(71626007)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2022 15:36:22.6246 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 98cd4971-5ad4-440e-b2e9-08dad3b1cd03 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: CO1NAM11FT046.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6550 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,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?1751026524842704302?= X-GMAIL-MSGID: =?utf-8?q?1751026524842704302?= Newer AMD processors support the new feature Bandwidth Monitoring Event Configuration (BMEC). The feature support is identified via CPUID Fn8000_0020_EBX_x0 (ECX=0). Bits Field Name Description 3 EVT_CFG Bandwidth Monitoring Event Configuration (BMEC) Currently, the bandwidth monitoring events mbm_total_bytes and mbm_local_bytes are set to count all the total and local reads/writes respectively. With the introduction of slow memory, the two counters are not enough to count all the different types of memory events. With the feature BMEC, the users have the option to configure mbm_total_bytes and mbm_local_bytes to count the specific type of events. Each BMEC event has a configuration MSR, which contains one field for each bandwidth type that can be used to configure the bandwidth event to track any combination of supported bandwidth types. The event will count requests from every bandwidth type bit that is set in the corresponding configuration register. Following are the types of events supported: ==== ======================================================== Bits Description ==== ======================================================== 6 Dirty Victims from the QOS domain to all types of memory 5 Reads to slow memory in the non-local NUMA domain 4 Reads to slow memory in the local NUMA domain 3 Non-temporal writes to non-local NUMA domain 2 Non-temporal writes to local NUMA domain 1 Reads to memory in the non-local NUMA domain 0 Reads to memory in the local NUMA domain ==== ======================================================== By default, the mbm_total_bytes configuration is set to 0x7F to count all the event types and the mbm_local_bytes configuration is set to 0x15 to count all the local memory events. Feature description is available in the specification, "AMD64 Technology Platform Quality of Service Extensions, Revision: 1.03 Publication Link: https://www.amd.com/en/support/tech-docs/amd64-technology-platform-quality-service-extensions Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537 Signed-off-by: Babu Moger Reviewed-by: Reinette Chatre --- arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/kernel/cpu/cpuid-deps.c | 2 ++ arch/x86/kernel/cpu/scattered.c | 1 + 3 files changed, 4 insertions(+) diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h index b6a45e56cd0c..415796d7b309 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -308,6 +308,7 @@ #define X86_FEATURE_CALL_DEPTH (11*32+19) /* "" Call depth tracking for RSB stuffing */ #define X86_FEATURE_MSR_TSX_CTRL (11*32+20) /* "" MSR IA32_TSX_CTRL (Intel) implemented */ #define X86_FEATURE_SMBA (11*32+21) /* Slow Memory Bandwidth Allocation */ +#define X86_FEATURE_BMEC (11*32+22) /* Bandwidth Monitoring Event Configuration */ /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */ #define X86_FEATURE_AVX_VNNI (12*32+ 4) /* AVX VNNI instructions */ diff --git a/arch/x86/kernel/cpu/cpuid-deps.c b/arch/x86/kernel/cpu/cpuid-deps.c index d95221117129..f6748c8bd647 100644 --- a/arch/x86/kernel/cpu/cpuid-deps.c +++ b/arch/x86/kernel/cpu/cpuid-deps.c @@ -68,6 +68,8 @@ static const struct cpuid_dep cpuid_deps[] = { { X86_FEATURE_CQM_OCCUP_LLC, X86_FEATURE_CQM_LLC }, { X86_FEATURE_CQM_MBM_TOTAL, X86_FEATURE_CQM_LLC }, { X86_FEATURE_CQM_MBM_LOCAL, X86_FEATURE_CQM_LLC }, + { X86_FEATURE_BMEC, X86_FEATURE_CQM_MBM_TOTAL }, + { X86_FEATURE_BMEC, X86_FEATURE_CQM_MBM_LOCAL }, { X86_FEATURE_AVX512_BF16, X86_FEATURE_AVX512VL }, { X86_FEATURE_AVX512_FP16, X86_FEATURE_AVX512BW }, { X86_FEATURE_ENQCMD, X86_FEATURE_XSAVES }, diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c index d925753084fb..0dad49a09b7a 100644 --- a/arch/x86/kernel/cpu/scattered.c +++ b/arch/x86/kernel/cpu/scattered.c @@ -46,6 +46,7 @@ static const struct cpuid_bit cpuid_bits[] = { { X86_FEATURE_PROC_FEEDBACK, CPUID_EDX, 11, 0x80000007, 0 }, { X86_FEATURE_MBA, CPUID_EBX, 6, 0x80000008, 0 }, { X86_FEATURE_SMBA, CPUID_EBX, 2, 0x80000020, 0 }, + { X86_FEATURE_BMEC, CPUID_EBX, 3, 0x80000020, 0 }, { X86_FEATURE_PERFMON_V2, CPUID_EAX, 0, 0x80000022, 0 }, { X86_FEATURE_AMD_LBR_V2, CPUID_EAX, 1, 0x80000022, 0 }, { 0, 0, 0, 0, 0 }