All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
To: Yushan Wang <wangyushan12@huawei.com>
Cc: <will@kernel.org>, <mark.rutland@arm.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <robin.murphy@arm.com>,
	<yangyicong@huawei.com>, <liuyonglong@huawei.com>,
	<wanghuiqiang@huawei.com>, <prime.zeng@hisilicon.com>,
	<hejunhao3@h-partners.com>
Subject: Re: [PATCH v2 7/9] drivers/perf: hisi: Add support for L3C PMU v3
Date: Tue, 26 Aug 2025 14:12:35 +0100	[thread overview]
Message-ID: <20250826141235.000028b8@huawei.com> (raw)
In-Reply-To: <20250821135049.2010220-8-wangyushan12@huawei.com>

On Thu, 21 Aug 2025 21:50:47 +0800
Yushan Wang <wangyushan12@huawei.com> wrote:

> From: Yicong Yang <yangyicong@hisilicon.com>
> 
> This patch adds support for L3C PMU v3. The v3 L3C PMU supports
> an extended events space which can be controlled in up to 2 extra
> address spaces with separate overflow interrupts. The layout
> of the control/event registers are kept the same. The extended events
> with original ones together cover the monitoring job of all transactions
> on L3C.
> 
> The extended events is specified with `ext=[1|2]` option for the
> driver to distinguish, like below:
> 
> perf stat -e hisi_sccl0_l3c0_0/event=<event_id>,ext=1/
> 
> Currently only event option using config bit [7, 0]. There's
> still plenty unused space. Make ext using config [16, 17] and
> reserve bit [15, 8] for event option for future extension.
> 
> With the capability of extra counters, number of counters for HiSilicon
> uncore PMU could reach up to 24, the usedmap is extended accordingly.
> 
> The hw_perf_event::event_base is initialized to the base MMIO
> address of the event and will be used for later control,
> overflow handling and counts readout.
> 
> We still make use of the Uncore PMU framework for handling the
> events and interrupt migration on CPU hotplug. The framework's
> cpuhp callback will handle the event migration and interrupt
> migration of orginial event, if PMU supports extended events
> then the interrupt of extended events is migrated to the same
> CPU choosed by the framework.
> 
> A new HID of HISI0215 is used for this version of L3C PMU.
> 
> Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
> Co-developed-by: Yushan Wang <wangyushan12@huawei.com>
> Signed-off-by: Yushan Wang <wangyushan12@huawei.com>
One minor formatting thing I missed in internal reviews. With that
tidied up (check other patches for this as well)

Acked-by: Jonathan Cameron <jonathan.cameron@huawei.com>

>  
>  static void hisi_l3c_pmu_stop_counters(struct hisi_pmu *l3c_pmu)
>  {
> +	struct hisi_l3c_pmu *hisi_l3c_pmu = to_hisi_l3c_pmu(l3c_pmu);
> +	unsigned long *used_mask = l3c_pmu->pmu_events.used_mask;
> +	unsigned long bit = find_first_bit(used_mask, l3c_pmu->num_counters);
>  	u32 val;
> +	int i;
>  
>  	/*
> -	 * Clear perf_enable bit in L3C_PERF_CTRL register to stop counting
> -	 * for all enabled counters.
> +	 * Check if any counter belongs to the normal range (instead of ext
> +	 * range). If so, stop it.
>  	 */
> -	val = readl(l3c_pmu->base + L3C_PERF_CTRL);
> -	val &= ~(L3C_PERF_CTRL_EN);
> -	writel(val, l3c_pmu->base + L3C_PERF_CTRL);
> +	if (bit < L3C_NR_COUNTERS) {
> +		val = readl(l3c_pmu->base + L3C_PERF_CTRL);
> +		val &= ~(L3C_PERF_CTRL_EN);

Brackets not adding anything here and inconsistently applied.
Please clean these up.

> +		writel(val, l3c_pmu->base + L3C_PERF_CTRL);
> +	}
> +
> +	/* If not, do stop it on ext ranges. */
> +	for (i = 0; i < hisi_l3c_pmu->ext_num; i++) {
> +		bit = find_next_bit(used_mask, L3C_NR_COUNTERS * (i + 2),
> +				    L3C_NR_COUNTERS * (i + 1));
> +		if (L3C_CNTR_EXT(bit) != i + 1)
> +			continue;
> +
> +		val = readl(hisi_l3c_pmu->ext_base[i] + L3C_PERF_CTRL);
> +		val &= ~L3C_PERF_CTRL_EN;
> +		writel(val, hisi_l3c_pmu->ext_base[i] + L3C_PERF_CTRL);
> +	}
>  }



  reply	other threads:[~2025-08-26 13:42 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-21 13:50 [PATCH v2 0/9] Updates of HiSilicon Uncore L3C PMU Yushan Wang
2025-08-21 13:50 ` [PATCH v2 1/9] drivers/perf: hisi: Relax the event ID check in the framework Yushan Wang
2025-08-26 13:03   ` Jonathan Cameron
2025-08-21 13:50 ` [PATCH v2 2/9] drivers/perf: hisi: Export hisi_uncore_pmu_isr() Yushan Wang
2025-08-26 13:03   ` Jonathan Cameron
2025-08-21 13:50 ` [PATCH v2 3/9] drivers/perf: hisi: Simplify the probe process of each L3C PMU version Yushan Wang
2025-08-26 13:06   ` Jonathan Cameron
2025-08-21 13:50 ` [PATCH v2 4/9] drivers/perf: hisi: Extract the event filter check of L3C PMU Yushan Wang
2025-08-26 13:06   ` Jonathan Cameron
2025-08-21 13:50 ` [PATCH v2 5/9] drivers/perf: hisi: Extend the field of tt_core Yushan Wang
2025-08-26 13:07   ` Jonathan Cameron
2025-08-21 13:50 ` [PATCH v2 6/9] drivers/perf: hisi: Refactor the event configuration of L3C PMU Yushan Wang
2025-08-26 13:08   ` Jonathan Cameron
2025-08-21 13:50 ` [PATCH v2 7/9] drivers/perf: hisi: Add support for L3C PMU v3 Yushan Wang
2025-08-26 13:12   ` Jonathan Cameron [this message]
2025-08-27  6:21     ` wangyushan
2025-08-27  3:43   ` Yicong Yang
2025-08-27  7:07     ` wangyushan
2025-08-21 13:50 ` [PATCH v2 8/9] Documentation: hisi-pmu: Fix of minor format error Yushan Wang
2025-08-26 13:21   ` Jonathan Cameron
2025-08-27  2:15   ` Yicong Yang
2025-08-21 13:50 ` [PATCH v2 9/9] Documentation: hisi-pmu: Add introduction to HiSilicon Yushan Wang
2025-08-26 13:22   ` Jonathan Cameron
2025-08-27  2:27   ` Yicong Yang
2025-08-27  7:22     ` wangyushan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250826141235.000028b8@huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=hejunhao3@h-partners.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liuyonglong@huawei.com \
    --cc=mark.rutland@arm.com \
    --cc=prime.zeng@hisilicon.com \
    --cc=robin.murphy@arm.com \
    --cc=wanghuiqiang@huawei.com \
    --cc=wangyushan12@huawei.com \
    --cc=will@kernel.org \
    --cc=yangyicong@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.