From patchwork Fri Jun 16 11:53:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 109079 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1288198vqr; Fri, 16 Jun 2023 05:03:57 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5iNTIHbhgSiRQmiUC5Evb3IRO8Jty570ewBHxohavmw+ufDaswttof490v54Jr1bg9OJw8 X-Received: by 2002:a6b:cf0f:0:b0:774:7f35:657a with SMTP id o15-20020a6bcf0f000000b007747f35657amr2365071ioa.10.1686917037457; Fri, 16 Jun 2023 05:03:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686917037; cv=none; d=google.com; s=arc-20160816; b=BzxmO/FPuIiQ0Du1dKoZDdP+ODrN3YLL5boJW/BdOGVS5/Kd21+Rw0ajeSOdB2Mvsa ZvKWSGbJ2ux3t04+GLTGdTmHY8sSc6VV/G4el3I2u/8CpVetPhDXlgW2084n4ecDi2QL F68YEFbHtXp6PWrMeuDfaKt8UBHOjdoIZgNDUEeHG6fwm0oWoJRGW8IFhYeQ2gk4m7An yq2TCNA5bPXgbjok7K85S3hr2ZbPlSwNX4uJZUWLdDHHhUt/J/GgOHFaUulqdHx+Idc1 bhas8Wjo2TkYEnIzUV7u2oLsUiXYmlOY2nnHTelshnt9dlwACqDe5H0dLf/v8wK5jFMU CwqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=K7xAAjbq425WmYDF4eeJ0EL9NFPdHLP90wUaRqnBZNg=; b=NNDAKqYI86rIqY1uEerb2V6fOsCArFrOUxLPEQolVC8j/i4uF+tvxM5OK/oxNVyE+P UiKiOBxue9THPMXvMYQyCU7NmXR7ci6L4Mujiwyw6gcmkcetoxDbzvYCvvWy711BQoVt hxGQGAWkaR9G3llL5ljlQHvZprbeHBzAokzqARKK3V9j608x5ye7/Fy206OmdptEUnLi SFKP2BmClrsjW6mEjaQjqHYgOM/qEngMBbeTz9GxpKFPbzUdLgOLhvfthOezOwP9u1v9 AowWPGvq0Jy4dCwYrjf+rhTU56y/ae1fI5bthrQ8woEcQFKr4yaYKzDGVfwKO1zqJVpf /HDQ== ARC-Authentication-Results: i=1; mx.google.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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l14-20020a17090a72ce00b0025c1f64f29dsi1399131pjk.171.2023.06.16.05.03.43; Fri, 16 Jun 2023 05:03:57 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344397AbjFPLxY (ORCPT + 99 others); Fri, 16 Jun 2023 07:53:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344895AbjFPLxX (ORCPT ); Fri, 16 Jun 2023 07:53:23 -0400 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A74B30CF; Fri, 16 Jun 2023 04:53:20 -0700 (PDT) Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-311153ec442so507936f8f.1; Fri, 16 Jun 2023 04:53:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686916399; x=1689508399; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=K7xAAjbq425WmYDF4eeJ0EL9NFPdHLP90wUaRqnBZNg=; b=VVKAefyzUkhucd2zTeHlApagVyGIzoaYmHllvLtwtLKqhsQdGadoO6/n/a3KL0XMJ3 O40hvTcKLHyGCuiljhOd/P+7q5A6n9XyzREKNwl4V0A8ph2ryGdFFmMtjhdjdBcW8TRg w+OhCNxrlruv8K8GoqhG/zxhpkJzLGl+d+akHhUBDMGkwN6nVpldTeHQZcohEr488oGD SBiA78KIMqTMe9bfFxzfzsyZUy78NnBryk7XrQ+oOgAzEtQWH7MXjB34r1MDyx1QMw+w uAUQH4bzKYmyevKeYLxSa3ZT3qe8WOMi1260ruPbyAOX5Qy/AuHCTyOqHSICEDXeiFbi Fysg== X-Gm-Message-State: AC+VfDy1gHNULGgDFRX+OLDobNKPap93wwe/W3aUqkgm2Y85wJ8chFnp YyQ3lmaWitGDohIFecK9KlI= X-Received: by 2002:adf:e4c1:0:b0:30f:c71a:1b28 with SMTP id v1-20020adfe4c1000000b0030fc71a1b28mr6558770wrm.28.1686916398618; Fri, 16 Jun 2023 04:53:18 -0700 (PDT) Received: from localhost (fwdproxy-cln-111.fbsv.net. [2a03:2880:31ff:6f::face:b00c]) by smtp.gmail.com with ESMTPSA id u24-20020a05600c00d800b003f7ead9be7fsm1954267wmm.38.2023.06.16.04.53.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Jun 2023 04:53:17 -0700 (PDT) From: Breno Leitao To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Adrian Hunter , Thomas Gleixner , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Sandipan Das Cc: leit@fb.com, dcostantino@meta.com, linux-perf-users@vger.kernel.org (open list:PERFORMANCE EVENTS SUBSYSTEM), linux-kernel@vger.kernel.org (open list:PERFORMANCE EVENTS SUBSYSTEM) Subject: [PATCH] perf/x86/amd: Do not WARN on every IRQ Date: Fri, 16 Jun 2023 04:53:15 -0700 Message-Id: <20230616115316.3652155-1-leitao@debian.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=no 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?1768860719065222931?= X-GMAIL-MSGID: =?utf-8?q?1768860719065222931?= On some systems, the Performance Counter Global Status Register is coming with reserved bits set, which causes the system to be unusable if a simple `perf top` runs. The system hits the WARN() thousands times while perf runs. WARNING: CPU: 18 PID: 20608 at arch/x86/events/amd/core.c:944 amd_pmu_v2_handle_irq+0x1be/0x2b0 This happens because the "Performance Counter Global Status Register" (PerfCntGlobalStatus) MSR has bit 7 set. Bit 7 should be reserved according to the documentation (Figure 13-12 from "AMD64 Architecture Programmer’s Manual, Volume 2: System Programming, 24593"[1] WARN_ONCE if any reserved bit is set, and sanitize the value to what the code is handling, so the overflow events continue to be handled for the number of events that are known to be sane. Signed-off-by: Breno Leitao Fixes: 7685665c390d ("perf/x86/amd/core: Add PerfMonV2 overflow handling") [1] Link: https://www.amd.com/system/files/TechDocs/24593.pdf --- arch/x86/events/amd/core.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/x86/events/amd/core.c b/arch/x86/events/amd/core.c index bccea57dee81..809ddb15c122 100644 --- a/arch/x86/events/amd/core.c +++ b/arch/x86/events/amd/core.c @@ -909,6 +909,10 @@ static int amd_pmu_v2_handle_irq(struct pt_regs *regs) status &= ~GLOBAL_STATUS_LBRS_FROZEN; } + amd_pmu_global_cntr_mask = (1ULL << x86_pmu.num_counters) - 1; + WARN_ON_ONCE(status & ~amd_pmu_global_cntr_mask); + status &= amd_pmu_global_cntr_mask; + for (idx = 0; idx < x86_pmu.num_counters; idx++) { if (!test_bit(idx, cpuc->active_mask)) continue;