From patchwork Fri Sep 11 07:02:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: thermal-bot for Julien Panis X-Patchwork-Id: 309853 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 60E63C433E2 for ; Fri, 11 Sep 2020 07:03:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 22312221EF for ; Fri, 11 Sep 2020 07:03:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="DvceqLzl"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="MQTCl1C0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725801AbgIKHCm (ORCPT ); Fri, 11 Sep 2020 03:02:42 -0400 Received: from Galois.linutronix.de ([193.142.43.55]:45076 "EHLO galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725648AbgIKHCb (ORCPT ); Fri, 11 Sep 2020 03:02:31 -0400 Date: Fri, 11 Sep 2020 07:02:27 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1599807748; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wEHOxkdlqmxFYEdk7iUjGYv/0FBMO8f9KO0LYJkQ/Bk=; b=DvceqLzlrWlvwvLvvmzu/Df4O/9MOBN0EK3h9rV8v3d+ygt0sqSQjVrq8k35XF1YfRZRqY U+nDwYj/C1x9+Ab3lu3ogLYQibuKtDrufO2gZZ+C55TjvuawCfpUYW7cwY6O2nsKger1OB UiHt2KnTIZVwIj4rw97Kbblw7XZRfWHPShSMTKtZ59cvrbO6TixVusyHfyeYarpeOBxsyb dchwQRacMqsp3uw5148+SO62MZ4UiVMnxZ+Q27Y1pAsYVdnTsHXLWPctpK1ExojzmP/kpW BDNn7SkVgwLqGpjp0xEFHdgXt4Ft7q0foFLFA91KutjK2Ot/EP5O9BBeui31mw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1599807748; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wEHOxkdlqmxFYEdk7iUjGYv/0FBMO8f9KO0LYJkQ/Bk=; b=MQTCl1C0BjxHibw4CuECTJUwkj8m/n5f0NBz746VlLCzcT5Yv96INTm/UmneKmdKPiMlGW 2pUwjXXPL4O8xgCw== From: "tip-bot2 for Kim Phillips" Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: perf/core] perf/x86/amd/ibs: Fix raw sample data accumulation Cc: Stephane Eranian , Kim Phillips , "Peter Zijlstra (Intel)" , stable@vger.kernel.org, x86 , LKML In-Reply-To: <20200908214740.18097-6-kim.phillips@amd.com> References: <20200908214740.18097-6-kim.phillips@amd.com> MIME-Version: 1.0 Message-ID: <159980774733.20229.8857189007953193576.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org The following commit has been merged into the perf/core branch of tip: Commit-ID: 36e1be8ada994d509538b3b1d0af8b63c351e729 Gitweb: https://git.kernel.org/tip/36e1be8ada994d509538b3b1d0af8b63c351e729 Author: Kim Phillips AuthorDate: Tue, 08 Sep 2020 16:47:38 -05:00 Committer: Peter Zijlstra CommitterDate: Thu, 10 Sep 2020 11:19:35 +02:00 perf/x86/amd/ibs: Fix raw sample data accumulation Neither IbsBrTarget nor OPDATA4 are populated in IBS Fetch mode. Don't accumulate them into raw sample user data in that case. Also, in Fetch mode, add saving the IBS Fetch Control Extended MSR. Technically, there is an ABI change here with respect to the IBS raw sample data format, but I don't see any perf driver version information being included in perf.data file headers, but, existing users can detect whether the size of the sample record has reduced by 8 bytes to determine whether the IBS driver has this fix. Fixes: 904cb3677f3a ("perf/x86/amd/ibs: Update IBS MSRs and feature definitions") Reported-by: Stephane Eranian Signed-off-by: Kim Phillips Signed-off-by: Peter Zijlstra (Intel) Cc: stable@vger.kernel.org Link: https://lkml.kernel.org/r/20200908214740.18097-6-kim.phillips@amd.com --- arch/x86/events/amd/ibs.c | 26 ++++++++++++++++---------- arch/x86/include/asm/msr-index.h | 1 + 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/arch/x86/events/amd/ibs.c b/arch/x86/events/amd/ibs.c index 863174a..cfbd020 100644 --- a/arch/x86/events/amd/ibs.c +++ b/arch/x86/events/amd/ibs.c @@ -630,18 +630,24 @@ fail: perf_ibs->offset_max, offset + 1); } while (offset < offset_max); + /* + * Read IbsBrTarget, IbsOpData4, and IbsExtdCtl separately + * depending on their availability. + * Can't add to offset_max as they are staggered + */ if (event->attr.sample_type & PERF_SAMPLE_RAW) { - /* - * Read IbsBrTarget and IbsOpData4 separately - * depending on their availability. - * Can't add to offset_max as they are staggered - */ - if (ibs_caps & IBS_CAPS_BRNTRGT) { - rdmsrl(MSR_AMD64_IBSBRTARGET, *buf++); - size++; + if (perf_ibs == &perf_ibs_op) { + if (ibs_caps & IBS_CAPS_BRNTRGT) { + rdmsrl(MSR_AMD64_IBSBRTARGET, *buf++); + size++; + } + if (ibs_caps & IBS_CAPS_OPDATA4) { + rdmsrl(MSR_AMD64_IBSOPDATA4, *buf++); + size++; + } } - if (ibs_caps & IBS_CAPS_OPDATA4) { - rdmsrl(MSR_AMD64_IBSOPDATA4, *buf++); + if (perf_ibs == &perf_ibs_fetch && (ibs_caps & IBS_CAPS_FETCHCTLEXTD)) { + rdmsrl(MSR_AMD64_ICIBSEXTDCTL, *buf++); size++; } } diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h index dc131b8..2d39c31 100644 --- a/arch/x86/include/asm/msr-index.h +++ b/arch/x86/include/asm/msr-index.h @@ -464,6 +464,7 @@ #define MSR_AMD64_IBSOP_REG_MASK ((1UL< X-Patchwork-Id: 309862 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F2F95C433E2 for ; Tue, 8 Sep 2020 21:49:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B4FB32087C for ; Tue, 8 Sep 2020 21:49:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="bvw5sBCc" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726694AbgIHVtJ (ORCPT ); Tue, 8 Sep 2020 17:49:09 -0400 Received: from mail-dm6nam08on2042.outbound.protection.outlook.com ([40.107.102.42]:3041 "EHLO NAM04-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1730136AbgIHVtI (ORCPT ); Tue, 8 Sep 2020 17:49:08 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jgIrk0GUve37BHkvCnTasv6U9U4/XcqfEuGpbzTUnAHyOq053GefZZBH11wkxR7s1AMKhmuxDmqL6Qb8NNVOToEuWBxBI68E+X1+PhjqMYHJux07zDyH1jRviViPTMj9jUjy6zwSX8c+RgVSx6HK/weyhDT2C4ETNjqpn9+i5Rk0Qw/PrGx93h6o5vK41S6NuCK2XQgsmGpqFQT0+jLNL4UUy5o8YOU7KVUlIKCYMlTlRaiYY4Ox7Dk7JWLRGQdpPm0cCyPCTkFm9k4jV1o2Sa5r5tQiLK6o4yRW+es7XZzIzxNWLVB5NrzkFoaMklJXVhT1SKsVPDo7wfFAV+s4/g== 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-SenderADCheck; bh=2wQty5KOW7ZcWvb/8JM/wQfWUXNSwh4q5Qg7UxChJ8U=; b=BAv1Y39XcqzgWuLTXGdeUiN9QFe7cLPxyJRxEKe61ZFvrPzGaiGUgQQ58gUdFpiLOKP06XCAqrTerHFBsyJ9U/THMr1rNLGR1Pclhg3yHcf5ErAhXTbZX2k6sfFSt3RbgHeFuss9WsPOLlNrRPCUf19jip7BI2WCC3RdK4X98SbiHP8HNzzyCEKZeK+E0kiLORqNDhRYNVTGcX/uNNs3NVWsUggR7Tr0+6DO/geHtxLhooYXu9KmnbLa1OQnl3wGXcc54ZRpN/PICcCptHihE7KIs2AZoLA0uEF85NDCYbpfAxfnXtqh4Q2ymgI2dUEBKZoZA7z9/fZBIP4SV6Obng== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2wQty5KOW7ZcWvb/8JM/wQfWUXNSwh4q5Qg7UxChJ8U=; b=bvw5sBCcv6wmlj2qT2g7fLEEYrjF3rN+D05Icv/UaSclyg4xPbDfSpLCAXTgqAnB7ppjK4ntmKImyd0+W7YAz5m4AdsMdEx9EROcwc7wEzRKrpzp/q/yz3F31okE38EwuXwRJcFKebQQbWfaGo3LsojhA+2TWsCCt/hxxrB4Jms= Authentication-Results: alien8.de; dkim=none (message not signed) header.d=none; alien8.de; dmarc=none action=none header.from=amd.com; Received: from BN8PR12MB2946.namprd12.prod.outlook.com (2603:10b6:408:9d::13) by BN8PR12MB2882.namprd12.prod.outlook.com (2603:10b6:408:96::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.15; Tue, 8 Sep 2020 21:49:03 +0000 Received: from BN8PR12MB2946.namprd12.prod.outlook.com ([fe80::a92d:18c0:971b:48e6]) by BN8PR12MB2946.namprd12.prod.outlook.com ([fe80::a92d:18c0:971b:48e6%6]) with mapi id 15.20.3348.019; Tue, 8 Sep 2020 21:49:03 +0000 From: Kim Phillips To: Borislav Petkov , Borislav Petkov , Peter Zijlstra , Ingo Molnar , Ingo Molnar , Thomas Gleixner , kim.phillips@amd.com Cc: Stephane Eranian , Alexander Shishkin , Arnaldo Carvalho de Melo , "H. Peter Anvin" , Jiri Olsa , Mark Rutland , Michael Petlan , Namhyung Kim , LKML , x86 , Stephane Eranian , stable@vger.kernel.org Subject: [PATCH v2 5/7] perf/x86/amd/ibs: Fix raw sample data accumulation Date: Tue, 8 Sep 2020 16:47:38 -0500 Message-Id: <20200908214740.18097-6-kim.phillips@amd.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200908214740.18097-1-kim.phillips@amd.com> References: <20200908214740.18097-1-kim.phillips@amd.com> X-ClientProxiedBy: DM5PR16CA0033.namprd16.prod.outlook.com (2603:10b6:4:15::19) To BN8PR12MB2946.namprd12.prod.outlook.com (2603:10b6:408:9d::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from fritz.amd.com (165.204.77.11) by DM5PR16CA0033.namprd16.prod.outlook.com (2603:10b6:4:15::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16 via Frontend Transport; Tue, 8 Sep 2020 21:49:00 +0000 X-Mailer: git-send-email 2.27.0 X-Originating-IP: [165.204.77.11] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 8d637c6b-2862-45d5-4c05-08d854410085 X-MS-TrafficTypeDiagnostic: BN8PR12MB2882: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MhSOAa+bg06MvNs0Tx7i2OHdP2USlViPa83WosRx4q43sCIhQYpzNsGaHgBlpH0vUEZlI8+/R1CHNx9cRgCSuTdpYaCXz+FN5MHEP9ovzRaqn6RgssXtN0P5R4Ym5b7ueuNHjjjnMXEipqZZf2FAqIv6NBaN3kmuwQZgdgOaYAoySqkQMyc6JuXsHdrgSYqPjTP2dyKrcAQQWZMNYmnS5g2ZgvNlJUE0SQ5DNzmvOqqvFtvjDF0Ak31Amf3uiFP7m7H86kBoAHxkEOAkvyXfe6++qCA/aHtppQU3FYo7B4M5VPScLhp2u7GCninGztoN7QyQKIqhcE99yBYB3jVwBw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN8PR12MB2946.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(366004)(136003)(376002)(39860400002)(396003)(54906003)(52116002)(7696005)(4326008)(26005)(186003)(110136005)(66556008)(66476007)(66946007)(5660300002)(2906002)(1076003)(36756003)(86362001)(6666004)(316002)(16526019)(44832011)(6486002)(478600001)(2616005)(8936002)(956004)(8676002)(83380400001)(7416002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: ynTrfuvzMaFshkT8PQu+QDqIjuuOXFduLnnZrKmzku9+mkD0QxXEyCCqaKTbImQtX4VU0cI4geoFMXhBTtTYEEu7qIygb+mfph4reavM7nLgAIoRX5oJgjoG6l9yIn8unZk33ck4SBEEoaQo8iJuS4bL1gD9CDh05GqTjGP9GWa1S4GVtqDwXstCB7iLwEWZ1o9wzbH7aKtHxQM3rTAhpu92yqgovcTVxRLIkOn5iHFNGtHZIN3Z2oNVsTZnvkDmFpm5Q1lyCsuRD9hoSdByPBB+g7VnmKHJm/R0azD1LYzWrPLGncpHePq6bCB8iv8pj+HqqCA/Mg0aqrDkPYwp303WWvLAj6cP8l6ilnAXR/ezsjCMWKO+Rj0GN8NUxaMwJ8RG1TCRJ7DUmB6NJtfrIMTh3GY9rXlNOvm/a1JQOXdGNsZKUdVcnNow9ztC4qplqHyqZWaa2x1Fvd+13rGORUgr7RQYopbcz9KkaxzCVcYN3v3Cl/69iyP+37T09fSyRPddXJvYdzSiYB1CvvWGEz4xa//dPVVmAxtdJJRqAHdiRc+qxPj3ZeySzkw6mx306sGwBJGpzMecWuPYJnQxqT3rf2CGHGGt3aOPvzjuBP35nkZ81zeK2XmD2PHsTC/ItQkEl7g6Pl8hkB+NJkCKAw== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d637c6b-2862-45d5-4c05-08d854410085 X-MS-Exchange-CrossTenant-AuthSource: BN8PR12MB2946.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2020 21:49:03.3407 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: euIG7QxHCvh8EaxZjtjVq9CFhNxLac6FJOEZSIAc7UfqGX7/8xFAMGHyVO2xFFQCRrtquV3++KZLusPUh48L5g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR12MB2882 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org Neither IbsBrTarget nor OPDATA4 are populated in IBS Fetch mode. Don't accumulate them into raw sample user data in that case. Also, in Fetch mode, add saving the IBS Fetch Control Extended MSR. Technically, there is an ABI change here with respect to the IBS raw sample data format, but I don't see any perf driver version information being included in perf.data file headers, but, existing users can detect whether the size of the sample record has reduced by 8 bytes to determine whether the IBS driver has this fix. Reported-by: Stephane Eranian Signed-off-by: Kim Phillips Fixes: 904cb3677f3a ("perf/x86/amd/ibs: Update IBS MSRs and feature definitions") Cc: Stephane Eranian Cc: Peter Zijlstra Cc: Ingo Molnar Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Borislav Petkov Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: "H. Peter Anvin" Cc: Jiri Olsa Cc: Mark Rutland Cc: Michael Petlan Cc: Namhyung Kim Cc: LKML Cc: x86 Cc: stable@vger.kernel.org --- v2: no changes. arch/x86/events/amd/ibs.c | 26 ++++++++++++++++---------- arch/x86/include/asm/msr-index.h | 1 + 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/arch/x86/events/amd/ibs.c b/arch/x86/events/amd/ibs.c index 68776cc291a6..ace28be4cbda 100644 --- a/arch/x86/events/amd/ibs.c +++ b/arch/x86/events/amd/ibs.c @@ -637,18 +637,24 @@ static int perf_ibs_handle_irq(struct perf_ibs *perf_ibs, struct pt_regs *iregs) perf_ibs->offset_max, offset + 1); } while (offset < offset_max); + /* + * Read IbsBrTarget, IbsOpData4, and IbsExtdCtl separately + * depending on their availability. + * Can't add to offset_max as they are staggered + */ if (event->attr.sample_type & PERF_SAMPLE_RAW) { - /* - * Read IbsBrTarget and IbsOpData4 separately - * depending on their availability. - * Can't add to offset_max as they are staggered - */ - if (ibs_caps & IBS_CAPS_BRNTRGT) { - rdmsrl(MSR_AMD64_IBSBRTARGET, *buf++); - size++; + if (perf_ibs == &perf_ibs_op) { + if (ibs_caps & IBS_CAPS_BRNTRGT) { + rdmsrl(MSR_AMD64_IBSBRTARGET, *buf++); + size++; + } + if (ibs_caps & IBS_CAPS_OPDATA4) { + rdmsrl(MSR_AMD64_IBSOPDATA4, *buf++); + size++; + } } - if (ibs_caps & IBS_CAPS_OPDATA4) { - rdmsrl(MSR_AMD64_IBSOPDATA4, *buf++); + if (perf_ibs == &perf_ibs_fetch && (ibs_caps & IBS_CAPS_FETCHCTLEXTD)) { + rdmsrl(MSR_AMD64_ICIBSEXTDCTL, *buf++); size++; } } diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h index 2859ee4f39a8..b08c8a2afc0e 100644 --- a/arch/x86/include/asm/msr-index.h +++ b/arch/x86/include/asm/msr-index.h @@ -464,6 +464,7 @@ #define MSR_AMD64_IBSOP_REG_MASK ((1UL<