Received: by 2002:a05:7412:2a8c:b0:e2:908c:2ebd with SMTP id u12csp2462002rdh; Wed, 27 Sep 2023 03:30:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFZdY9Sj894bCOc0UcNTJs2BFMu0bQAMZd6fxe7HEoYm+gcfSBhGrsV/TnsmNLaW4GhBgAW X-Received: by 2002:a67:cd0e:0:b0:452:70f7:ca4a with SMTP id u14-20020a67cd0e000000b0045270f7ca4amr1396280vsl.34.1695810638962; Wed, 27 Sep 2023 03:30:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695810638; cv=none; d=google.com; s=arc-20160816; b=jDS7LiwYyBkgqoQzmkYOyPmbvoSjO4gvmxlq2PK8IB+n0B+zEnaIL9uqK3IzFWfWPm byLaT9z2E4mf+ca/ZjlnVimek6mcgaOYnVMeeQac4B7z1Uj8JIhppkUeJAETSdP22h6R UpLKtmForUH4leW/IcD7lYogCh6uasf2LPxmuL3nEMyxbWnGKAFjvUCsVxfmHy7A1LNH rwXs29aRyu/ljzNazZSOsrAIPf2gHshbCf14jkzJ5Is/+CeqRXQFzqedTpIZx92iEYTV N7zxbHwnunwTYr+rAc/GssGgUI6WTJVlgwqG3Hv+vy+z2JwsboU1ggIYT3MnDzl7v1kU QaKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=l5XS7Z2HYwT7+bKR8ejv05mrlibvnmC+jgh8eL0fAPo=; fh=qSYNZNQDBJ/0eKwARNI00dobGApbD7WPWS7yyhsI48o=; b=cEP0kDWJkdCWgNE+9iM4dmnXJGb3Aq89L6yqQcrCUDlY0L0+Fw4ovwsiiL1RIMczvJ kn4iKN0xegJ6r+JWlratrrWA6slsYrjjTOJLiWxjciEhEtBcbErfeAic+Zl/E/fzqRRm gC74nGKwc/Omjh3T1eoA0DPZoDAJkR5CcLX7BPYKkMI8Az604/4Azvh2Cl+lNXHfnmOF RIcZYSZP+zsKhtdE+AH5o/4/mYZ2sjGRofRUZHaxgK40DrVWWM63DY1WWP2n6cSC8oz1 ZgrctGLrenwzWed/hkFV4ZnyQIP+peFHx/T85QMC8Ny62InTj8cdGQDKbiBfj7faMRVq I4Cw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=JkIUtQsb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id ca6-20020a056a02068600b00573f94e8b83si16979140pgb.265.2023.09.27.03.30.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Sep 2023 03:30:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=JkIUtQsb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 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 (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 4E0EE80C2E97; Tue, 26 Sep 2023 22:14:08 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229502AbjI0FOD (ORCPT + 99 others); Wed, 27 Sep 2023 01:14:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48604 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229668AbjI0FN1 (ORCPT ); Wed, 27 Sep 2023 01:13:27 -0400 Received: from mail-qt1-x82f.google.com (mail-qt1-x82f.google.com [IPv6:2607:f8b0:4864:20::82f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1DA4F59C0 for ; Tue, 26 Sep 2023 21:48:11 -0700 (PDT) Received: by mail-qt1-x82f.google.com with SMTP id d75a77b69052e-418157e979eso148761cf.1 for ; Tue, 26 Sep 2023 21:48:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1695790090; x=1696394890; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=l5XS7Z2HYwT7+bKR8ejv05mrlibvnmC+jgh8eL0fAPo=; b=JkIUtQsbd7zRgA7jdptbDYPywpO1CMQ5rNycomxYkbnLlkRcVISGVlXEY22RrB4kx4 /fjhA9vV4M0J5LFaWM1xUOXxEvzGDbZ3WRJCDMKmhWaE7mJHgZ3RbxlSQL51dtXiSKrR 6JWL44CIscDERQwJX4YdO/UbWjN1UpcsNlcTYiPi8kA5+/nqmiPvHES1CaIAK/lMqC4w 3pwoEr4SXRpk55SSlwSGVDmvZfD25yfL9hVKub+JK8AJXGCVLVQrHfyaudblh+oSQiLh jgKqyKznOKfkRcowSMYxJlnyidmGb19vScwrMOC1kt5qvVUKQJ0E6tOv99LTpF00XaQT X5AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695790090; x=1696394890; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=l5XS7Z2HYwT7+bKR8ejv05mrlibvnmC+jgh8eL0fAPo=; b=SN2htA2xOqUnUq5wsiWlirAAOUQSbT2fq93ElcL3ddpL89MSDQXssYMiXgKGMlr7Hz rAVkUCx6v3n1m9vjbBa9dhV7dhlgQWfQY9HgDcvcl45Zxtlh+/YTXKd/dTCtSfv+XKz5 Y5G4AKmU8wS7F7R8XgEi5x5rojDRukP7TH+e+uO89WZCbq7IsDuxUBAb5DJqQTPt2Yh6 7leaOUavhySHqvp1bGOpdzS5zCxEpbZynN8VQffr441PjeyGANNIvSHgQeyLfwcpqkDc CrjCmveqj35c8Kg+FgB6HsiErIyuEb9sv4aJ2rmvzI2z59Lc17QVswsCzz0qClKKdgxx KYqg== X-Gm-Message-State: AOJu0YweXpXpJ8/asIHO7hDl7lQG3m+hlAPzb+pDHMX4UqeFqF6ItYr+ Mk4iol/nMWcj8jaW3GyK3UwO748eWZXgBp9ivNeVRNVwUUpMWdEWap8= X-Received: by 2002:ac8:5b01:0:b0:410:958a:465f with SMTP id m1-20020ac85b01000000b00410958a465fmr450066qtw.11.1695790090076; Tue, 26 Sep 2023 21:48:10 -0700 (PDT) MIME-Version: 1.0 References: <20230911144139.2354015-1-kan.liang@linux.intel.com> In-Reply-To: <20230911144139.2354015-1-kan.liang@linux.intel.com> From: Stephane Eranian Date: Tue, 26 Sep 2023 21:47:57 -0700 Message-ID: Subject: Re: [PATCH] perf/x86/intel: Extend the ref-cycles event to GP counters To: kan.liang@linux.intel.com Cc: peterz@infradead.org, mingo@redhat.com, linux-kernel@vger.kernel.org, ak@linux.intel.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,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 morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Tue, 26 Sep 2023 22:14:08 -0700 (PDT) On Mon, Sep 11, 2023 at 7:41=E2=80=AFAM wrote: > > From: Kan Liang > > The current ref-cycles event is only available on the fixed counter 2. > Starting from the GLC and GRT core, the architectural UnHalted Reference > Cycles event (0x013c) which is available on general-purpose counters > can collect the exact same events as the fixed counter 2. > > Update the mapping of ref-cycles to 0x013c. So the ref-cycles can be > available on both fixed counter 2 and general-purpose counters. > > Signed-off-by: Kan Liang > --- > arch/x86/events/intel/core.c | 21 ++++++++++++++++++++- > 1 file changed, 20 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c > index e1543d6dc48a..a08f794a0e79 100644 > --- a/arch/x86/events/intel/core.c > +++ b/arch/x86/events/intel/core.c > @@ -211,6 +211,14 @@ static struct event_constraint intel_slm_event_const= raints[] __read_mostly =3D > EVENT_CONSTRAINT_END > }; > > +static struct event_constraint intel_grt_event_constraints[] __read_most= ly =3D { > + FIXED_EVENT_CONSTRAINT(0x00c0, 0), /* INST_RETIRED.ANY */ > + FIXED_EVENT_CONSTRAINT(0x003c, 1), /* CPU_CLK_UNHALTED.CORE */ > + FIXED_EVENT_CONSTRAINT(0x0300, 2), /* pseudo CPU_CLK_UNHALTED.REF= */ > + FIXED_EVENT_CONSTRAINT(0x013c, 2), /* CPU_CLK_UNHALTED.REF_TSC_P = */ > + EVENT_CONSTRAINT_END > +}; > + > static struct event_constraint intel_skl_event_constraints[] =3D { > FIXED_EVENT_CONSTRAINT(0x00c0, 0), /* INST_RETIRED.ANY */ > FIXED_EVENT_CONSTRAINT(0x003c, 1), /* CPU_CLK_UNHALTED.CORE = */ > @@ -314,6 +322,7 @@ static struct event_constraint intel_glc_event_constr= aints[] =3D { > FIXED_EVENT_CONSTRAINT(0x0100, 0), /* INST_RETIRED.PREC_DIST= */ > FIXED_EVENT_CONSTRAINT(0x003c, 1), /* CPU_CLK_UNHALTED.CORE = */ > FIXED_EVENT_CONSTRAINT(0x0300, 2), /* CPU_CLK_UNHALTED.REF *= / > + FIXED_EVENT_CONSTRAINT(0x013c, 2), /* CPU_CLK_UNHALTED.REF_T= SC_P */ I don't think that on SKL there is a REF_TSC_P. It only appears on SPR. The encoding exists on SKL but it counts REF_XCLK which I think counts something different. Please che= ck. > FIXED_EVENT_CONSTRAINT(0x0400, 3), /* SLOTS */ > METRIC_EVENT_CONSTRAINT(INTEL_TD_METRIC_RETIRING, 0), > METRIC_EVENT_CONSTRAINT(INTEL_TD_METRIC_BAD_SPEC, 1), > @@ -5983,6 +5992,12 @@ static __always_inline int intel_pmu_init_hybrid(e= num hybrid_pmu_type pmus) > return 0; > } > > +static __always_inline void intel_pmu_ref_cycles_ext(void) > +{ > + if (!(x86_pmu.events_maskl & (INTEL_PMC_MSK_FIXED_REF_CYCLES >> I= NTEL_PMC_IDX_FIXED))) > + intel_perfmon_event_map[PERF_COUNT_HW_REF_CPU_CYCLES] =3D= 0x013c; > +} > + > static __always_inline void intel_pmu_init_glc(struct pmu *pmu) > { > x86_pmu.late_ack =3D true; > @@ -6005,6 +6020,8 @@ static __always_inline void intel_pmu_init_glc(stru= ct pmu *pmu) > memcpy(hybrid_var(pmu, hw_cache_extra_regs), glc_hw_cache_extra_r= egs, sizeof(hw_cache_extra_regs)); > hybrid(pmu, event_constraints) =3D intel_glc_event_constraints; > hybrid(pmu, pebs_constraints) =3D intel_glc_pebs_event_constraint= s; > + > + intel_pmu_ref_cycles_ext(); > } > > static __always_inline void intel_pmu_init_grt(struct pmu *pmu) > @@ -6021,9 +6038,11 @@ static __always_inline void intel_pmu_init_grt(str= uct pmu *pmu) > memcpy(hybrid_var(pmu, hw_cache_event_ids), glp_hw_cache_event_id= s, sizeof(hw_cache_event_ids)); > memcpy(hybrid_var(pmu, hw_cache_extra_regs), tnt_hw_cache_extra_r= egs, sizeof(hw_cache_extra_regs)); > hybrid_var(pmu, hw_cache_event_ids)[C(ITLB)][C(OP_READ)][C(RESULT= _ACCESS)] =3D -1; > - hybrid(pmu, event_constraints) =3D intel_slm_event_constraints; > + hybrid(pmu, event_constraints) =3D intel_grt_event_constraints; > hybrid(pmu, pebs_constraints) =3D intel_grt_pebs_event_constraint= s; > hybrid(pmu, extra_regs) =3D intel_grt_extra_regs; > + > + intel_pmu_ref_cycles_ext(); > } > > __init int intel_pmu_init(void) > -- > 2.35.1 >