[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240222121838.GA8308@willie-the-truck>
Date: Thu, 22 Feb 2024 12:18:38 +0000
From: Will Deacon <will@...nel.org>
To: Xu Yang <xu.yang_2@....com>
Cc: Frank.li@....com, mark.rutland@....com, robh+dt@...nel.org,
krzysztof.kozlowski+dt@...aro.org, conor+dt@...nel.org,
shawnguo@...nel.org, s.hauer@...gutronix.de, kernel@...gutronix.de,
festevam@...il.com, john.g.garry@...cle.com, jolsa@...nel.org,
namhyung@...nel.org, irogers@...gle.com, linux-imx@....com,
mike.leach@...aro.org, leo.yan@...aro.org, peterz@...radead.org,
mingo@...hat.com, acme@...nel.org,
alexander.shishkin@...ux.intel.com, adrian.hunter@...el.com,
linux-arm-kernel@...ts.infradead.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-perf-users@...r.kernel.org,
imx@...ts.linux.dev
Subject: Re: [PATCH v4 2/6] perf: imx_perf: refactor driver for imx93
On Wed, Jan 31, 2024 at 01:58:07PM +0800, Xu Yang wrote:
> This driver is initinally used to support imx93 Soc and now it's time to
> add support for imx95 Soc. However, some macro definitions and events are
> different on these two Socs. For preparing imx95 supports, this will
> refactor driver for imx93.
>
> Signed-off-by: Xu Yang <xu.yang_2@....com>
>
> ---
> Changes in v4:
> - new patch
> ---
> drivers/perf/fsl_imx9_ddr_perf.c | 121 ++++++++++++++++++++++---------
> 1 file changed, 87 insertions(+), 34 deletions(-)
[...]
> @@ -476,12 +490,12 @@ static int ddr_perf_event_add(struct perf_event *event, int flags)
> hwc->idx = counter;
> hwc->state |= PERF_HES_STOPPED;
>
> + /* read trans, write trans, read beat */
> + imx93_ddr_perf_monitor_config(pmu, cfg, cfg1, cfg2);
> +
> if (flags & PERF_EF_START)
> ddr_perf_event_start(event, flags);
>
> - /* read trans, write trans, read beat */
> - ddr_perf_monitor_config(pmu, cfg, cfg1, cfg2);
> -
> return 0;
This change looks like more than just refactoring and should probably be a
separate patch. Is it a bug fix for the existing code?
> +static int ddr_perf_add_events(struct ddr_pmu *pmu)
> +{
> + int i, ret;
> + struct attribute **attrs = pmu->devtype_data->attrs;
> + struct device *pmu_dev = pmu->pmu.dev;
> +
> + if (!attrs)
> + return 0;
> +
> + for (i = 0; attrs[i]; i++) {
> + ret = sysfs_add_file_to_group(&pmu_dev->kobj, attrs[i], "events");
> + if (ret) {
> + dev_warn(pmu->dev, "i.MX9 DDR Perf add events failed (%d)\n", ret);
> + return ret;
Can you use the '.is_visible' callback in 'struct attribute_group' to avoid
having to manipulate sysfs directly like this? For example, create separate
groups for the imx93 and imx95-specific events and only make them visible
if we're on the appropriate hardware.
Will
Powered by blists - more mailing lists