linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1] perf metric: Add #num_cpus_online literal
@ 2023-08-30  7:30 Ian Rogers
  2023-08-30 13:14 ` Liang, Kan
  0 siblings, 1 reply; 3+ messages in thread
From: Ian Rogers @ 2023-08-30  7:30 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Ian Rogers, Adrian Hunter, Kan Liang, Eduard Zingerman,
	John Garry, Jing Zhang, James Clark, linux-perf-users,
	linux-kernel, Perry Taylor

Returns the number of CPUs online, unlike #num_cpus that returns the
number present. Add a test of the property. This will be used in
future Intel metrics.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/tests/expr.c | 5 ++++-
 tools/perf/util/expr.c  | 7 +++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/tools/perf/tests/expr.c b/tools/perf/tests/expr.c
index c1c3fcbc2753..81229fa4f1e9 100644
--- a/tools/perf/tests/expr.c
+++ b/tools/perf/tests/expr.c
@@ -70,7 +70,7 @@ static int test__expr(struct test_suite *t __maybe_unused, int subtest __maybe_u
 {
 	struct expr_id_data *val_ptr;
 	const char *p;
-	double val, num_cpus, num_cores, num_dies, num_packages;
+	double val, num_cpus_online, num_cpus, num_cores, num_dies, num_packages;
 	int ret;
 	struct expr_parse_ctx *ctx;
 	bool is_intel = false;
@@ -227,7 +227,10 @@ static int test__expr(struct test_suite *t __maybe_unused, int subtest __maybe_u
 
 	/* Test toplogy constants appear well ordered. */
 	expr__ctx_clear(ctx);
+	TEST_ASSERT_VAL("#num_cpus_online",
+			expr__parse(&num_cpus_online, ctx, "#num_cpus_online") == 0);
 	TEST_ASSERT_VAL("#num_cpus", expr__parse(&num_cpus, ctx, "#num_cpus") == 0);
+	TEST_ASSERT_VAL("#num_cpus >= #num_cpus_online", num_cpus >= num_cpus_online);
 	TEST_ASSERT_VAL("#num_cores", expr__parse(&num_cores, ctx, "#num_cores") == 0);
 	TEST_ASSERT_VAL("#num_cpus >= #num_cores", num_cpus >= num_cores);
 	TEST_ASSERT_VAL("#num_dies", expr__parse(&num_dies, ctx, "#num_dies") == 0);
diff --git a/tools/perf/util/expr.c b/tools/perf/util/expr.c
index 0985a3cbc6f9..4488f306de78 100644
--- a/tools/perf/util/expr.c
+++ b/tools/perf/util/expr.c
@@ -427,6 +427,13 @@ double expr__get_literal(const char *literal, const struct expr_scanner_ctx *ctx
 		result = cpu__max_present_cpu().cpu;
 		goto out;
 	}
+	if (!strcmp("#num_cpus_online", literal)) {
+		struct perf_cpu_map *online = cpu_map__online();
+
+		if (online)
+			result = perf_cpu_map__nr(online);
+		goto out;
+	}
 
 	if (!strcasecmp("#system_tsc_freq", literal)) {
 		result = arch_get_tsc_freq();
-- 
2.42.0.rc2.253.gd59a3bf2b4-goog


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v1] perf metric: Add #num_cpus_online literal
  2023-08-30  7:30 [PATCH v1] perf metric: Add #num_cpus_online literal Ian Rogers
@ 2023-08-30 13:14 ` Liang, Kan
  2023-08-30 16:28   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 3+ messages in thread
From: Liang, Kan @ 2023-08-30 13:14 UTC (permalink / raw)
  To: Ian Rogers, Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Adrian Hunter, Eduard Zingerman, John Garry, Jing Zhang,
	James Clark, linux-perf-users, linux-kernel, Perry Taylor



On 2023-08-30 3:30 a.m., Ian Rogers wrote:
> Returns the number of CPUs online, unlike #num_cpus that returns the
> number present. Add a test of the property. This will be used in
> future Intel metrics.
> 
> Signed-off-by: Ian Rogers <irogers@google.com>

Reviewed-by: Kan Liang <kan.liang@linux.intel.com>

Thanks,
Kan
> ---
>  tools/perf/tests/expr.c | 5 ++++-
>  tools/perf/util/expr.c  | 7 +++++++
>  2 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/perf/tests/expr.c b/tools/perf/tests/expr.c
> index c1c3fcbc2753..81229fa4f1e9 100644
> --- a/tools/perf/tests/expr.c
> +++ b/tools/perf/tests/expr.c
> @@ -70,7 +70,7 @@ static int test__expr(struct test_suite *t __maybe_unused, int subtest __maybe_u
>  {
>  	struct expr_id_data *val_ptr;
>  	const char *p;
> -	double val, num_cpus, num_cores, num_dies, num_packages;
> +	double val, num_cpus_online, num_cpus, num_cores, num_dies, num_packages;
>  	int ret;
>  	struct expr_parse_ctx *ctx;
>  	bool is_intel = false;
> @@ -227,7 +227,10 @@ static int test__expr(struct test_suite *t __maybe_unused, int subtest __maybe_u
>  
>  	/* Test toplogy constants appear well ordered. */
>  	expr__ctx_clear(ctx);
> +	TEST_ASSERT_VAL("#num_cpus_online",
> +			expr__parse(&num_cpus_online, ctx, "#num_cpus_online") == 0);
>  	TEST_ASSERT_VAL("#num_cpus", expr__parse(&num_cpus, ctx, "#num_cpus") == 0);
> +	TEST_ASSERT_VAL("#num_cpus >= #num_cpus_online", num_cpus >= num_cpus_online);
>  	TEST_ASSERT_VAL("#num_cores", expr__parse(&num_cores, ctx, "#num_cores") == 0);
>  	TEST_ASSERT_VAL("#num_cpus >= #num_cores", num_cpus >= num_cores);
>  	TEST_ASSERT_VAL("#num_dies", expr__parse(&num_dies, ctx, "#num_dies") == 0);
> diff --git a/tools/perf/util/expr.c b/tools/perf/util/expr.c
> index 0985a3cbc6f9..4488f306de78 100644
> --- a/tools/perf/util/expr.c
> +++ b/tools/perf/util/expr.c
> @@ -427,6 +427,13 @@ double expr__get_literal(const char *literal, const struct expr_scanner_ctx *ctx
>  		result = cpu__max_present_cpu().cpu;
>  		goto out;
>  	}
> +	if (!strcmp("#num_cpus_online", literal)) {
> +		struct perf_cpu_map *online = cpu_map__online();
> +
> +		if (online)
> +			result = perf_cpu_map__nr(online);
> +		goto out;
> +	}
>  
>  	if (!strcasecmp("#system_tsc_freq", literal)) {
>  		result = arch_get_tsc_freq();

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v1] perf metric: Add #num_cpus_online literal
  2023-08-30 13:14 ` Liang, Kan
@ 2023-08-30 16:28   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2023-08-30 16:28 UTC (permalink / raw)
  To: Liang, Kan
  Cc: Ian Rogers, Peter Zijlstra, Ingo Molnar, Mark Rutland,
	Alexander Shishkin, Jiri Olsa, Namhyung Kim, Adrian Hunter,
	Eduard Zingerman, John Garry, Jing Zhang, James Clark,
	linux-perf-users, linux-kernel, Perry Taylor

Em Wed, Aug 30, 2023 at 09:14:00AM -0400, Liang, Kan escreveu:
> 
> 
> On 2023-08-30 3:30 a.m., Ian Rogers wrote:
> > Returns the number of CPUs online, unlike #num_cpus that returns the
> > number present. Add a test of the property. This will be used in
> > future Intel metrics.
> > 
> > Signed-off-by: Ian Rogers <irogers@google.com>
> 
> Reviewed-by: Kan Liang <kan.liang@linux.intel.com>

Thanks, applied.

- Arnaldo

 
> Thanks,
> Kan
> > ---
> >  tools/perf/tests/expr.c | 5 ++++-
> >  tools/perf/util/expr.c  | 7 +++++++
> >  2 files changed, 11 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tools/perf/tests/expr.c b/tools/perf/tests/expr.c
> > index c1c3fcbc2753..81229fa4f1e9 100644
> > --- a/tools/perf/tests/expr.c
> > +++ b/tools/perf/tests/expr.c
> > @@ -70,7 +70,7 @@ static int test__expr(struct test_suite *t __maybe_unused, int subtest __maybe_u
> >  {
> >  	struct expr_id_data *val_ptr;
> >  	const char *p;
> > -	double val, num_cpus, num_cores, num_dies, num_packages;
> > +	double val, num_cpus_online, num_cpus, num_cores, num_dies, num_packages;
> >  	int ret;
> >  	struct expr_parse_ctx *ctx;
> >  	bool is_intel = false;
> > @@ -227,7 +227,10 @@ static int test__expr(struct test_suite *t __maybe_unused, int subtest __maybe_u
> >  
> >  	/* Test toplogy constants appear well ordered. */
> >  	expr__ctx_clear(ctx);
> > +	TEST_ASSERT_VAL("#num_cpus_online",
> > +			expr__parse(&num_cpus_online, ctx, "#num_cpus_online") == 0);
> >  	TEST_ASSERT_VAL("#num_cpus", expr__parse(&num_cpus, ctx, "#num_cpus") == 0);
> > +	TEST_ASSERT_VAL("#num_cpus >= #num_cpus_online", num_cpus >= num_cpus_online);
> >  	TEST_ASSERT_VAL("#num_cores", expr__parse(&num_cores, ctx, "#num_cores") == 0);
> >  	TEST_ASSERT_VAL("#num_cpus >= #num_cores", num_cpus >= num_cores);
> >  	TEST_ASSERT_VAL("#num_dies", expr__parse(&num_dies, ctx, "#num_dies") == 0);
> > diff --git a/tools/perf/util/expr.c b/tools/perf/util/expr.c
> > index 0985a3cbc6f9..4488f306de78 100644
> > --- a/tools/perf/util/expr.c
> > +++ b/tools/perf/util/expr.c
> > @@ -427,6 +427,13 @@ double expr__get_literal(const char *literal, const struct expr_scanner_ctx *ctx
> >  		result = cpu__max_present_cpu().cpu;
> >  		goto out;
> >  	}
> > +	if (!strcmp("#num_cpus_online", literal)) {
> > +		struct perf_cpu_map *online = cpu_map__online();
> > +
> > +		if (online)
> > +			result = perf_cpu_map__nr(online);
> > +		goto out;
> > +	}
> >  
> >  	if (!strcasecmp("#system_tsc_freq", literal)) {
> >  		result = arch_get_tsc_freq();

-- 

- Arnaldo

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-08-30 18:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-30  7:30 [PATCH v1] perf metric: Add #num_cpus_online literal Ian Rogers
2023-08-30 13:14 ` Liang, Kan
2023-08-30 16:28   ` Arnaldo Carvalho de Melo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).