All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Ian Rogers <irogers@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@kernel.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1] perf tests: Fix hwmon parsing with PMU name test
Date: Wed, 20 Nov 2024 21:49:52 -0800	[thread overview]
Message-ID: <Zz7KAAG2pHhCg-Dx@google.com> (raw)
In-Reply-To: <20241121000955.536930-1-irogers@google.com>

On Wed, Nov 20, 2024 at 04:09:55PM -0800, Ian Rogers wrote:
> Incorrectly the hwmon with PMU name test didn't pass "true". Fix and
> address issue with hwmon_pmu__config_terms needing to load events - a
> load bearing assert fired. Also fix missing list deletion when putting
> the hwmon test PMU and lower some debug warnings to make the hwmon PMU
> less spammy in verbose mode.
> 
> Signed-off-by: Ian Rogers <irogers@google.com>

Tested-by: Namhyung Kim <namhyung@kernel.org>

Thanks,
Namhyung

> ---
>  tools/perf/tests/hwmon_pmu.c |  5 +++--
>  tools/perf/util/hwmon_pmu.c  | 16 ++++++++++------
>  2 files changed, 13 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/perf/tests/hwmon_pmu.c b/tools/perf/tests/hwmon_pmu.c
> index d8bc71b51599..b4656529146e 100644
> --- a/tools/perf/tests/hwmon_pmu.c
> +++ b/tools/perf/tests/hwmon_pmu.c
> @@ -41,6 +41,7 @@ static int test_pmu_put(const char *dir, struct perf_pmu *hwm)
>  	if (ret)
>  		pr_err("Failure to \"%s\"\n", buf);
>  
> +	list_del(&hwm->list);
>  	perf_pmu__delete(hwm);
>  	return ret;
>  }
> @@ -147,7 +148,7 @@ static int do_test(size_t i, bool with_pmu, bool with_alias)
>  	}
>  
>  	if (with_pmu)
> -		snprintf(str, sizeof(str), "/%s/", test_event);
> +		snprintf(str, sizeof(str), "hwmon_a_test_hwmon_pmu/%s/", test_event);
>  	else
>  		strlcpy(str, test_event, sizeof(str));
>  
> @@ -230,7 +231,7 @@ static int test__hwmon_pmu_without_pmu(struct test_suite *test __maybe_unused,
>  static int test__hwmon_pmu_with_pmu(struct test_suite *test __maybe_unused,
>  				   int subtest __maybe_unused)
>  {
> -	return test__hwmon_pmu(/*with_pmu=*/false);
> +	return test__hwmon_pmu(/*with_pmu=*/true);
>  }
>  
>  static int test__parse_hwmon_filename(struct test_suite *test __maybe_unused,
> diff --git a/tools/perf/util/hwmon_pmu.c b/tools/perf/util/hwmon_pmu.c
> index 4d9d6f405434..e61429b38ba7 100644
> --- a/tools/perf/util/hwmon_pmu.c
> +++ b/tools/perf/util/hwmon_pmu.c
> @@ -197,13 +197,13 @@ bool parse_hwmon_filename(const char *filename,
>  		}
>  	}
>  	if (fn_item == NULL || fn_type[0] == '\0' || (item != NULL && fn_item[0] == '\0')) {
> -		pr_debug("hwmon_pmu: not a hwmon file '%s'\n", filename);
> +		pr_debug3("hwmon_pmu: not a hwmon file '%s'\n", filename);
>  		return false;
>  	}
>  	elem = bsearch(&fn_type, hwmon_type_strs + 1, ARRAY_SIZE(hwmon_type_strs) - 1,
>  		       sizeof(hwmon_type_strs[0]), hwmon_strcmp);
>  	if (!elem) {
> -		pr_debug("hwmon_pmu: not a hwmon type '%s' in file name '%s'\n",
> +		pr_debug3("hwmon_pmu: not a hwmon type '%s' in file name '%s'\n",
>  			 fn_type, filename);
>  		return false;
>  	}
> @@ -223,7 +223,7 @@ bool parse_hwmon_filename(const char *filename,
>  	elem = bsearch(fn_item, hwmon_item_strs + 1, ARRAY_SIZE(hwmon_item_strs) - 1,
>  		       sizeof(hwmon_item_strs[0]), hwmon_strcmp);
>  	if (!elem) {
> -		pr_debug("hwmon_pmu: not a hwmon item '%s' in file name '%s'\n",
> +		pr_debug3("hwmon_pmu: not a hwmon item '%s' in file name '%s'\n",
>  			 fn_item, filename);
>  		return false;
>  	}
> @@ -281,7 +281,7 @@ static int hwmon_pmu__read_events(struct hwmon_pmu *pmu)
>  			continue;
>  
>  		if (!parse_hwmon_filename(ent->d_name, &type, &number, &item, &alarm)) {
> -			pr_debug("Not a hwmon file '%s'\n", ent->d_name);
> +			pr_debug3("Not a hwmon file '%s'\n", ent->d_name);
>  			continue;
>  		}
>  		key.num = number;
> @@ -653,10 +653,14 @@ int hwmon_pmu__config_terms(const struct perf_pmu *pmu,
>  			    struct parse_events_terms *terms,
>  			    struct parse_events_error *err)
>  {
> -	const struct hwmon_pmu *hwm = container_of(pmu, struct hwmon_pmu, pmu);
> +	struct hwmon_pmu *hwm = container_of(pmu, struct hwmon_pmu, pmu);
>  	struct parse_events_term *term;
> +	int ret;
> +
> +	ret = hwmon_pmu__read_events(hwm);
> +	if (ret)
> +		return ret;
>  
> -	assert(pmu->sysfs_aliases_loaded);
>  	list_for_each_entry(term, &terms->terms, list) {
>  		if (hwmon_pmu__config_term(hwm, attr, term, err))
>  			return -EINVAL;
> -- 
> 2.47.0.371.ga323438b13-goog
> 

  reply	other threads:[~2024-11-21  5:49 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-21  0:09 [PATCH v1] perf tests: Fix hwmon parsing with PMU name test Ian Rogers
2024-11-21  5:49 ` Namhyung Kim [this message]
2024-11-21 17:04 ` Arnaldo Carvalho de Melo
2024-11-21 17:22   ` Arnaldo Carvalho de Melo
2024-11-21 18:55     ` Ian Rogers
2024-11-21 20:58       ` Arnaldo Carvalho de Melo
2024-11-21 21:08         ` Arnaldo Carvalho de Melo
2024-11-22  6:59         ` Ian Rogers
2024-11-22 22:17 ` Namhyung Kim

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=Zz7KAAG2pHhCg-Dx@google.com \
    --to=namhyung@kernel.org \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=irogers@google.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    /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.