* [PATCH 0/2] perf tests: Fix Convert perf time to TSC test for hybrid
@ 2022-07-13 12:34 Adrian Hunter
2022-07-13 12:34 ` [PATCH 1/2] perf tests: Stop Convert perf time to TSC test opening events twice Adrian Hunter
2022-07-13 12:34 ` [PATCH 2/2] perf tests: Fix Convert perf time to TSC test for hybrid Adrian Hunter
0 siblings, 2 replies; 6+ messages in thread
From: Adrian Hunter @ 2022-07-13 12:34 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Jiri Olsa, Kan Liang, Thomas Richter, Namhyung Kim, Ian Rogers,
linux-kernel
Hi
Here are a couple more minor non-urgent fixes.
Adrian Hunter (2):
perf tests: Stop Convert perf time to TSC test opening events twice
perf tests: Fix Convert perf time to TSC test for hybrid
tools/perf/tests/perf-time-to-tsc.c | 27 ++++++++++-----------------
1 file changed, 10 insertions(+), 17 deletions(-)
Regards
Adrian
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 1/2] perf tests: Stop Convert perf time to TSC test opening events twice 2022-07-13 12:34 [PATCH 0/2] perf tests: Fix Convert perf time to TSC test for hybrid Adrian Hunter @ 2022-07-13 12:34 ` Adrian Hunter 2022-07-13 13:03 ` Liang, Kan 2022-07-13 12:34 ` [PATCH 2/2] perf tests: Fix Convert perf time to TSC test for hybrid Adrian Hunter 1 sibling, 1 reply; 6+ messages in thread From: Adrian Hunter @ 2022-07-13 12:34 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Jiri Olsa, Kan Liang, Thomas Richter, Namhyung Kim, Ian Rogers, linux-kernel Do not call evlist__open() twice. Fixes: 5bb017d4b97a ("perf test: Fix error message for test case 71 on s390, where it is not supported") Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> --- tools/perf/tests/perf-time-to-tsc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/perf/tests/perf-time-to-tsc.c b/tools/perf/tests/perf-time-to-tsc.c index 4ad0dfbc8b21..8d6d60173693 100644 --- a/tools/perf/tests/perf-time-to-tsc.c +++ b/tools/perf/tests/perf-time-to-tsc.c @@ -123,11 +123,14 @@ static int test__perf_time_to_tsc(struct test_suite *test __maybe_unused, int su evsel->core.attr.enable_on_exec = 0; } - if (evlist__open(evlist) == -ENOENT) { - err = TEST_SKIP; + ret = evlist__open(evlist); + if (ret < 0) { + if (ret == -ENOENT) + err = TEST_SKIP; + else + pr_debug("evlist__open() failed\n"); goto out_err; } - CHECK__(evlist__open(evlist)); CHECK__(evlist__mmap(evlist, UINT_MAX)); -- 2.25.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] perf tests: Stop Convert perf time to TSC test opening events twice 2022-07-13 12:34 ` [PATCH 1/2] perf tests: Stop Convert perf time to TSC test opening events twice Adrian Hunter @ 2022-07-13 13:03 ` Liang, Kan 0 siblings, 0 replies; 6+ messages in thread From: Liang, Kan @ 2022-07-13 13:03 UTC (permalink / raw) To: Adrian Hunter, Arnaldo Carvalho de Melo Cc: Jiri Olsa, Thomas Richter, Namhyung Kim, Ian Rogers, linux-kernel On 2022-07-13 8:34 a.m., Adrian Hunter wrote: > Do not call evlist__open() twice. > > Fixes: 5bb017d4b97a ("perf test: Fix error message for test case 71 on s390, where it is not supported") > Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>> --- > tools/perf/tests/perf-time-to-tsc.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/tools/perf/tests/perf-time-to-tsc.c b/tools/perf/tests/perf-time-to-tsc.c > index 4ad0dfbc8b21..8d6d60173693 100644 > --- a/tools/perf/tests/perf-time-to-tsc.c > +++ b/tools/perf/tests/perf-time-to-tsc.c > @@ -123,11 +123,14 @@ static int test__perf_time_to_tsc(struct test_suite *test __maybe_unused, int su > evsel->core.attr.enable_on_exec = 0; > } > > - if (evlist__open(evlist) == -ENOENT) { > - err = TEST_SKIP; > + ret = evlist__open(evlist); > + if (ret < 0) { > + if (ret == -ENOENT) > + err = TEST_SKIP; > + else > + pr_debug("evlist__open() failed\n"); The error message for the evlist__open is slightly different with the old one, "evlist__open(evlist) failed!". Not sure if anyone care about it. Reviewed-by: Kan Liang <kan.liang@linux.intel.com> Thanks, Kan > goto out_err; > } > - CHECK__(evlist__open(evlist)); > > CHECK__(evlist__mmap(evlist, UINT_MAX)); > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] perf tests: Fix Convert perf time to TSC test for hybrid 2022-07-13 12:34 [PATCH 0/2] perf tests: Fix Convert perf time to TSC test for hybrid Adrian Hunter 2022-07-13 12:34 ` [PATCH 1/2] perf tests: Stop Convert perf time to TSC test opening events twice Adrian Hunter @ 2022-07-13 12:34 ` Adrian Hunter 2022-07-13 13:05 ` Liang, Kan 1 sibling, 1 reply; 6+ messages in thread From: Adrian Hunter @ 2022-07-13 12:34 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Jiri Olsa, Kan Liang, Thomas Richter, Namhyung Kim, Ian Rogers, linux-kernel The test does not always correctly determine the number of events for hybrids, nor allow for more than 1 evsel when parsing. Fix by iterating the events actually created and getting the correct evsel for the events processed. Fixes: d9da6f70eb23 ("perf tests: Support 'Convert perf time to TSC' test for hybrid") Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> --- tools/perf/tests/perf-time-to-tsc.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/tools/perf/tests/perf-time-to-tsc.c b/tools/perf/tests/perf-time-to-tsc.c index 8d6d60173693..7c7d20fc503a 100644 --- a/tools/perf/tests/perf-time-to-tsc.c +++ b/tools/perf/tests/perf-time-to-tsc.c @@ -20,8 +20,6 @@ #include "tsc.h" #include "mmap.h" #include "tests.h" -#include "pmu.h" -#include "pmu-hybrid.h" /* * Except x86_64/i386 and Arm64, other archs don't support TSC in perf. Just @@ -106,18 +104,8 @@ static int test__perf_time_to_tsc(struct test_suite *test __maybe_unused, int su evlist__config(evlist, &opts, NULL); - evsel = evlist__first(evlist); - - evsel->core.attr.comm = 1; - evsel->core.attr.disabled = 1; - evsel->core.attr.enable_on_exec = 0; - - /* - * For hybrid "cycles:u", it creates two events. - * Init the second evsel here. - */ - if (perf_pmu__has_hybrid() && perf_pmu__hybrid_mounted("cpu_atom")) { - evsel = evsel__next(evsel); + /* For hybrid "cycles:u", it creates two events */ + evlist__for_each_entry(evlist, evsel) { evsel->core.attr.comm = 1; evsel->core.attr.disabled = 1; evsel->core.attr.enable_on_exec = 0; @@ -170,10 +158,12 @@ static int test__perf_time_to_tsc(struct test_suite *test __maybe_unused, int su goto next_event; if (strcmp(event->comm.comm, comm1) == 0) { + CHECK_NOT_NULL__(evsel = evlist__event2evsel(evlist, event)); CHECK__(evsel__parse_sample(evsel, event, &sample)); comm1_time = sample.time; } if (strcmp(event->comm.comm, comm2) == 0) { + CHECK_NOT_NULL__(evsel = evlist__event2evsel(evlist, event)); CHECK__(evsel__parse_sample(evsel, event, &sample)); comm2_time = sample.time; } -- 2.25.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] perf tests: Fix Convert perf time to TSC test for hybrid 2022-07-13 12:34 ` [PATCH 2/2] perf tests: Fix Convert perf time to TSC test for hybrid Adrian Hunter @ 2022-07-13 13:05 ` Liang, Kan 2022-07-17 13:58 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 6+ messages in thread From: Liang, Kan @ 2022-07-13 13:05 UTC (permalink / raw) To: Adrian Hunter, Arnaldo Carvalho de Melo Cc: Jiri Olsa, Thomas Richter, Namhyung Kim, Ian Rogers, linux-kernel On 2022-07-13 8:34 a.m., Adrian Hunter wrote: > The test does not always correctly determine the number of events for > hybrids, nor allow for more than 1 evsel when parsing. > > Fix by iterating the events actually created and getting the correct > evsel for the events processed. > Yes, we cannot always assume there are two events for hybrid. > Fixes: d9da6f70eb23 ("perf tests: Support 'Convert perf time to TSC' test for hybrid") > Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Reviewed-by: Kan Liang <kan.liang@linux.intel.com> Thanks, Kan > --- > tools/perf/tests/perf-time-to-tsc.c | 18 ++++-------------- > 1 file changed, 4 insertions(+), 14 deletions(-) > > diff --git a/tools/perf/tests/perf-time-to-tsc.c b/tools/perf/tests/perf-time-to-tsc.c > index 8d6d60173693..7c7d20fc503a 100644 > --- a/tools/perf/tests/perf-time-to-tsc.c > +++ b/tools/perf/tests/perf-time-to-tsc.c > @@ -20,8 +20,6 @@ > #include "tsc.h" > #include "mmap.h" > #include "tests.h" > -#include "pmu.h" > -#include "pmu-hybrid.h" > > /* > * Except x86_64/i386 and Arm64, other archs don't support TSC in perf. Just > @@ -106,18 +104,8 @@ static int test__perf_time_to_tsc(struct test_suite *test __maybe_unused, int su > > evlist__config(evlist, &opts, NULL); > > - evsel = evlist__first(evlist); > - > - evsel->core.attr.comm = 1; > - evsel->core.attr.disabled = 1; > - evsel->core.attr.enable_on_exec = 0; > - > - /* > - * For hybrid "cycles:u", it creates two events. > - * Init the second evsel here. > - */ > - if (perf_pmu__has_hybrid() && perf_pmu__hybrid_mounted("cpu_atom")) { > - evsel = evsel__next(evsel); > + /* For hybrid "cycles:u", it creates two events */ > + evlist__for_each_entry(evlist, evsel) { > evsel->core.attr.comm = 1; > evsel->core.attr.disabled = 1; > evsel->core.attr.enable_on_exec = 0; > @@ -170,10 +158,12 @@ static int test__perf_time_to_tsc(struct test_suite *test __maybe_unused, int su > goto next_event; > > if (strcmp(event->comm.comm, comm1) == 0) { > + CHECK_NOT_NULL__(evsel = evlist__event2evsel(evlist, event)); > CHECK__(evsel__parse_sample(evsel, event, &sample)); > comm1_time = sample.time; > } > if (strcmp(event->comm.comm, comm2) == 0) { > + CHECK_NOT_NULL__(evsel = evlist__event2evsel(evlist, event)); > CHECK__(evsel__parse_sample(evsel, event, &sample)); > comm2_time = sample.time; > } ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] perf tests: Fix Convert perf time to TSC test for hybrid 2022-07-13 13:05 ` Liang, Kan @ 2022-07-17 13:58 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 6+ messages in thread From: Arnaldo Carvalho de Melo @ 2022-07-17 13:58 UTC (permalink / raw) To: Liang, Kan Cc: Adrian Hunter, Jiri Olsa, Thomas Richter, Namhyung Kim, Ian Rogers, linux-kernel Em Wed, Jul 13, 2022 at 09:05:21AM -0400, Liang, Kan escreveu: > > > On 2022-07-13 8:34 a.m., Adrian Hunter wrote: > > The test does not always correctly determine the number of events for > > hybrids, nor allow for more than 1 evsel when parsing. > > > > Fix by iterating the events actually created and getting the correct > > evsel for the events processed. > > > > Yes, we cannot always assume there are two events for hybrid. > > > Fixes: d9da6f70eb23 ("perf tests: Support 'Convert perf time to TSC' test for hybrid") > > Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> > > > Reviewed-by: Kan Liang <kan.liang@linux.intel.com> Thanks, applied. - Arnaldo > Thanks, > Kan > > --- > > tools/perf/tests/perf-time-to-tsc.c | 18 ++++-------------- > > 1 file changed, 4 insertions(+), 14 deletions(-) > > > > diff --git a/tools/perf/tests/perf-time-to-tsc.c b/tools/perf/tests/perf-time-to-tsc.c > > index 8d6d60173693..7c7d20fc503a 100644 > > --- a/tools/perf/tests/perf-time-to-tsc.c > > +++ b/tools/perf/tests/perf-time-to-tsc.c > > @@ -20,8 +20,6 @@ > > #include "tsc.h" > > #include "mmap.h" > > #include "tests.h" > > -#include "pmu.h" > > -#include "pmu-hybrid.h" > > > > /* > > * Except x86_64/i386 and Arm64, other archs don't support TSC in perf. Just > > @@ -106,18 +104,8 @@ static int test__perf_time_to_tsc(struct test_suite *test __maybe_unused, int su > > > > evlist__config(evlist, &opts, NULL); > > > > - evsel = evlist__first(evlist); > > - > > - evsel->core.attr.comm = 1; > > - evsel->core.attr.disabled = 1; > > - evsel->core.attr.enable_on_exec = 0; > > - > > - /* > > - * For hybrid "cycles:u", it creates two events. > > - * Init the second evsel here. > > - */ > > - if (perf_pmu__has_hybrid() && perf_pmu__hybrid_mounted("cpu_atom")) { > > - evsel = evsel__next(evsel); > > + /* For hybrid "cycles:u", it creates two events */ > > + evlist__for_each_entry(evlist, evsel) { > > evsel->core.attr.comm = 1; > > evsel->core.attr.disabled = 1; > > evsel->core.attr.enable_on_exec = 0; > > @@ -170,10 +158,12 @@ static int test__perf_time_to_tsc(struct test_suite *test __maybe_unused, int su > > goto next_event; > > > > if (strcmp(event->comm.comm, comm1) == 0) { > > + CHECK_NOT_NULL__(evsel = evlist__event2evsel(evlist, event)); > > CHECK__(evsel__parse_sample(evsel, event, &sample)); > > comm1_time = sample.time; > > } > > if (strcmp(event->comm.comm, comm2) == 0) { > > + CHECK_NOT_NULL__(evsel = evlist__event2evsel(evlist, event)); > > CHECK__(evsel__parse_sample(evsel, event, &sample)); > > comm2_time = sample.time; > > } -- - Arnaldo ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-07-17 13:58 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-07-13 12:34 [PATCH 0/2] perf tests: Fix Convert perf time to TSC test for hybrid Adrian Hunter 2022-07-13 12:34 ` [PATCH 1/2] perf tests: Stop Convert perf time to TSC test opening events twice Adrian Hunter 2022-07-13 13:03 ` Liang, Kan 2022-07-13 12:34 ` [PATCH 2/2] perf tests: Fix Convert perf time to TSC test for hybrid Adrian Hunter 2022-07-13 13:05 ` Liang, Kan 2022-07-17 13:58 ` Arnaldo Carvalho de Melo
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.