From patchwork Wed Feb 8 20:42:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 54599 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp3678196wrn; Wed, 8 Feb 2023 12:46:19 -0800 (PST) X-Google-Smtp-Source: AK7set8IhwBnPMWV0sm5+NwAXUKy4skqYEG2aBheYHPEOEFV6DN3Pk5tZQbcBBUcKV5yfuVUslC+ X-Received: by 2002:a17:906:283:b0:878:4bda:2011 with SMTP id 3-20020a170906028300b008784bda2011mr8042855ejf.4.1675889179339; Wed, 08 Feb 2023 12:46:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675889179; cv=none; d=google.com; s=arc-20160816; b=Ii7+BFN2P2IfQhqxqtyKcz+FJ/Bi8Vuq/dWdHWPbBiWpLgucLhEBF6Cn2sx4Uc78MV 9NAFDLGDqss5ECZVSL19R/OQHDvjuJcK8L967hss5eJ6bRy8mUz95DIcNacKVLI8nEAU f4HWy2uD5YROT5IUIpmGsc4kiw1hKCNsCRmmNGcSurgcCq/ycGntINYS16mavrnotg8E WDHr9HIig7K1pk7tcyNua9boGkhFoQkz/DsTKzubpGpCljUnSKpXVUo7qrmdOY6kQZ3Z wgPNEqwNLfAhsYSax6YdI5RSAkdbK83VksDPA0cIqjbjWRuEXDooDlKyGgeq6lBX242K 4s6w== 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=zVWDTl0p8IeLDiHH3ugnUoxZ7xfcxn6x+ZxiZsMm1KE=; b=peCCFWakycgo6gL59p+3YAGgJmMsNYaat2P5o8NVZpUoXvORzzMTjDL24HAI55Vw2+ XD0aV75MbfZhtvj1QbvjJ4knF41NQ3ELLFfnlth/x2hBqAiyAKXpL+wAllwrA494Njw6 /oU2osMWECCV6Q7g2+9zvz7wqsc3t/8oSoEMjkI0JI9drCd7xUietcAQTSuhnsuuAA+n 3VFG3n0Y4rYjrTWtlwpBavtkleA0kqDKG/PmZnFxGGYmOPo0t5O7MOhJ5szgIDzyWPpT 7Ekntkk72AFJPQkFDMUK+TSXqqNQBYBRNnzjI5uLfboXsrGamfOHG0f0I9WkruZ7P5br G+Fw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=WPwZTTT6; 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 r21-20020a056402035500b0049e1d359ae5si1873792edw.4.2023.02.08.12.45.55; Wed, 08 Feb 2023 12:46:19 -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=@google.com header.s=20210112 header.b=WPwZTTT6; 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 S232202AbjBHUmo (ORCPT + 99 others); Wed, 8 Feb 2023 15:42:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50408 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232179AbjBHUmj (ORCPT ); Wed, 8 Feb 2023 15:42:39 -0500 Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com [IPv6:2607:f8b0:4864:20::104a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 82AAB233F3 for ; Wed, 8 Feb 2023 12:42:38 -0800 (PST) Received: by mail-pj1-x104a.google.com with SMTP id y4-20020a17090a2b4400b002310ecae757so1829823pjc.1 for ; Wed, 08 Feb 2023 12:42:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; 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=zVWDTl0p8IeLDiHH3ugnUoxZ7xfcxn6x+ZxiZsMm1KE=; b=WPwZTTT6W7rLlFyK6g3SZsOgRN4KF7X/gJI2mYv+nPqGya9GQYbpivlSLH7pxH9ReX Ycdy8GW7qw+hGfGzLdCkUTd5iDSAauj/h6Ta0mQ+tV54mqO68SlssteuZua90Gqp8+iR 1Ezxx37QtpW0xG/k04jRWUcTDKBevogtVIw3hP6+4gpF/SE7hg7D5qWj+sMmB/YrhzrK HPK/ZXkpi1YeeeU1K1SP+96nsuGS+m/RLcT629dZDIFpVqGIWFK3/0hEEUd0eeVgJeV0 9ZWh2ox8GKZgGtzKvqPkjzx6S+JtjJl+pmb6UWELdgL0+6zcJQx6M3FuA0dmRmJKUNtq tT6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=zVWDTl0p8IeLDiHH3ugnUoxZ7xfcxn6x+ZxiZsMm1KE=; b=NfOtaeiR5Bi3GyH6mMVUtMi8pIH6a1EILPQsB673VEtlgC/02Ez/60QNUKUZzz6EMJ RP5FAR5LvYM+Fk5JTBDhnJciBiH5tbpMij7axkHMFF1PbNTh3xSpp8Au4pbv3iTHZLst dni/c/I+iuWBk+YUpSindGcrQApA42YoEJtauEGoLWd0V4+MaY6tZPhWxqNPblCc3FJE T7KGu2c7YYhk4yDtB4UBjt5fMN3hcwWKKpcSI+HME7PaUoOmnPt+UG/DLsfbEXjhp8bW U6+3kt6PTE7OQkOlWAAJArePp4uddjxsoIJaY7H7KSu1JSrClw6o94qLKJ1ddnIWODJU W1Yw== X-Gm-Message-State: AO0yUKU+bmOFJIJ0bq4EeUskl4Vb/WytIZIUa4zrZ0JHkPDj4vtxPQRX ZvFMuERIotqgbpXb0+1A5JZvdOVI5uw= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a63:701b:0:b0:4fb:3ee3:3a6a with SMTP id l27-20020a63701b000000b004fb3ee33a6amr384194pgc.125.1675888957652; Wed, 08 Feb 2023 12:42:37 -0800 (PST) Reply-To: Sean Christopherson Date: Wed, 8 Feb 2023 20:42:30 +0000 In-Reply-To: <20230208204230.1360502-1-seanjc@google.com> Mime-Version: 1.0 References: <20230208204230.1360502-1-seanjc@google.com> X-Mailer: git-send-email 2.39.1.519.gcb327c4b5f-goog Message-ID: <20230208204230.1360502-3-seanjc@google.com> Subject: [PATCH v2 2/2] perf/x86: Refuse to export capabilities for hybrid PMUs From: Sean Christopherson To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Sean Christopherson , Paolo Bonzini Cc: Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Jianfeng Gao , Andrew Cooper , Kan Liang , Andi Kleen 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,USER_IN_DEF_DKIM_WL autolearn=unavailable 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?1757297171913412546?= X-GMAIL-MSGID: =?utf-8?q?1757297171913412546?= Now that KVM disables vPMU support on hybrid CPUs, WARN and return zeros if perf_get_x86_pmu_capability() is invoked on a hybrid CPU. The helper doesn't provide an accurate accounting of the PMU capabilities for hybrid CPUs and needs to be enhanced if KVM, or anything else outside of perf, wants to act on the PMU capabilities. Cc: stable@vger.kernel.org Cc: Andrew Cooper Cc: Peter Zijlstra Cc: Kan Liang Cc: Andi Kleen Link: https://lore.kernel.org/all/20220818181530.2355034-1-kan.liang@linux.intel.com Signed-off-by: Sean Christopherson --- arch/x86/events/core.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c index 85a63a41c471..d096b04bf80e 100644 --- a/arch/x86/events/core.c +++ b/arch/x86/events/core.c @@ -2974,17 +2974,19 @@ unsigned long perf_misc_flags(struct pt_regs *regs) void perf_get_x86_pmu_capability(struct x86_pmu_capability *cap) { - if (!x86_pmu_initialized()) { + /* This API doesn't currently support enumerating hybrid PMUs. */ + if (WARN_ON_ONCE(cpu_feature_enabled(X86_FEATURE_HYBRID_CPU)) || + !x86_pmu_initialized()) { memset(cap, 0, sizeof(*cap)); return; } + /* + * Note, hybrid CPU models get tracked as having hybrid PMUs even when + * all E-cores are disabled via BIOS. When E-cores are disabled, the + * base PMU holds the correct number of counters for P-cores. + */ cap->version = x86_pmu.version; - /* - * KVM doesn't support the hybrid PMU yet. - * Return the common value in global x86_pmu, - * which available for all cores. - */ cap->num_counters_gp = x86_pmu.num_counters; cap->num_counters_fixed = x86_pmu.num_counters_fixed; cap->bit_width_gp = x86_pmu.cntval_bits;