* [PATCH 1/1] perf tests task_analyzer: Check perf build options for libtraceevent support
@ 2023-07-25 6:16 Aditya Gupta
2023-07-28 14:54 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 8+ messages in thread
From: Aditya Gupta @ 2023-07-25 6:16 UTC (permalink / raw)
To: acme, jolsa, irogers, namhyung
Cc: linux-perf-users, linuxppc-dev, maddy, atrajeev, kjain, disgoel,
linux-kernel
Currently we depend on output of 'perf record -e "sched:sched_switch"', to
check whether perf was built with libtraceevent support.
Instead, a more straightforward approach can be to check the build options,
using 'perf version --build-options', to check for libtraceevent support.
When perf is compiled WITHOUT libtraceevent ('make NO_LIBTRACEEVENT=1'),
'perf version --build-options' outputs (output trimmed):
...
libtraceevent: [ OFF ] # HAVE_LIBTRACEEVENT
...
While, when perf is compiled WITH libtraceevent,
'perf version --build-options' outputs:
...
libtraceevent: [ on ] # HAVE_LIBTRACEEVENT
...
Suggested-by: Ian Rogers <irogers@google.com>
Signed-off-by: Aditya Gupta <adityag@linux.ibm.com>
---
tools/perf/tests/shell/test_task_analyzer.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/tests/shell/test_task_analyzer.sh b/tools/perf/tests/shell/test_task_analyzer.sh
index 0095abbe20ca..a28d784987b4 100755
--- a/tools/perf/tests/shell/test_task_analyzer.sh
+++ b/tools/perf/tests/shell/test_task_analyzer.sh
@@ -52,7 +52,7 @@ find_str_or_fail() {
# check if perf is compiled with libtraceevent support
skip_no_probe_record_support() {
- perf record -e "sched:sched_switch" -a -- sleep 1 2>&1 | grep "libtraceevent is necessary for tracepoint support" && return 2
+ perf version --build-options | grep HAVE_LIBTRACEEVENT | grep -q OFF && return 2
return 0
}
--
2.41.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH 1/1] perf tests task_analyzer: Check perf build options for libtraceevent support 2023-07-25 6:16 [PATCH 1/1] perf tests task_analyzer: Check perf build options for libtraceevent support Aditya Gupta @ 2023-07-28 14:54 ` Arnaldo Carvalho de Melo 2023-07-28 16:01 ` Ian Rogers 2023-07-29 7:39 ` Aditya Gupta 0 siblings, 2 replies; 8+ messages in thread From: Arnaldo Carvalho de Melo @ 2023-07-28 14:54 UTC (permalink / raw) To: Aditya Gupta Cc: jolsa, irogers, namhyung, linux-perf-users, linuxppc-dev, maddy, atrajeev, kjain, disgoel, linux-kernel Em Tue, Jul 25, 2023 at 11:46:49AM +0530, Aditya Gupta escreveu: > Currently we depend on output of 'perf record -e "sched:sched_switch"', to > check whether perf was built with libtraceevent support. > > Instead, a more straightforward approach can be to check the build options, > using 'perf version --build-options', to check for libtraceevent support. > > When perf is compiled WITHOUT libtraceevent ('make NO_LIBTRACEEVENT=1'), > 'perf version --build-options' outputs (output trimmed): > > ... > libtraceevent: [ OFF ] # HAVE_LIBTRACEEVENT > ... > > While, when perf is compiled WITH libtraceevent, > > 'perf version --build-options' outputs: > > ... > libtraceevent: [ on ] # HAVE_LIBTRACEEVENT > ... > > Suggested-by: Ian Rogers <irogers@google.com> > Signed-off-by: Aditya Gupta <adityag@linux.ibm.com> > --- > > tools/perf/tests/shell/test_task_analyzer.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/perf/tests/shell/test_task_analyzer.sh b/tools/perf/tests/shell/test_task_analyzer.sh > index 0095abbe20ca..a28d784987b4 100755 > --- a/tools/perf/tests/shell/test_task_analyzer.sh > +++ b/tools/perf/tests/shell/test_task_analyzer.sh > @@ -52,7 +52,7 @@ find_str_or_fail() { > > # check if perf is compiled with libtraceevent support > skip_no_probe_record_support() { > - perf record -e "sched:sched_switch" -a -- sleep 1 2>&1 | grep "libtraceevent is necessary for tracepoint support" && return 2 > + perf version --build-options | grep HAVE_LIBTRACEEVENT | grep -q OFF && return 2 > return 0 I'll apply this, but please consider adding a: perf build --has libtraceevent subcommand to have that query made more compact and to avoid the two extra grep. BTW, I'll change that to: [acme@quaco perf-tools-next]$ perf version --build-options | grep " on .* HAVE_LIBTRACEEVENT" libtraceevent: [ on ] # HAVE_LIBTRACEEVENT [acme@quaco perf-tools-next]$ replacing "on" with OFF, so that we have just one grep. Thanks, - Arnaldo > } > > -- > 2.41.0 > -- - Arnaldo ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] perf tests task_analyzer: Check perf build options for libtraceevent support 2023-07-28 14:54 ` Arnaldo Carvalho de Melo @ 2023-07-28 16:01 ` Ian Rogers 2023-07-28 18:30 ` Arnaldo Carvalho de Melo 2023-07-29 7:39 ` Aditya Gupta 1 sibling, 1 reply; 8+ messages in thread From: Ian Rogers @ 2023-07-28 16:01 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Aditya Gupta, jolsa, namhyung, linux-perf-users, linuxppc-dev, maddy, atrajeev, kjain, disgoel, linux-kernel On Fri, Jul 28, 2023 at 7:54 AM Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > > Em Tue, Jul 25, 2023 at 11:46:49AM +0530, Aditya Gupta escreveu: > > Currently we depend on output of 'perf record -e "sched:sched_switch"', to > > check whether perf was built with libtraceevent support. > > > > Instead, a more straightforward approach can be to check the build options, > > using 'perf version --build-options', to check for libtraceevent support. > > > > When perf is compiled WITHOUT libtraceevent ('make NO_LIBTRACEEVENT=1'), > > 'perf version --build-options' outputs (output trimmed): > > > > ... > > libtraceevent: [ OFF ] # HAVE_LIBTRACEEVENT > > ... > > > > While, when perf is compiled WITH libtraceevent, > > > > 'perf version --build-options' outputs: > > > > ... > > libtraceevent: [ on ] # HAVE_LIBTRACEEVENT > > ... > > > > Suggested-by: Ian Rogers <irogers@google.com> > > Signed-off-by: Aditya Gupta <adityag@linux.ibm.com> > > --- > > > > tools/perf/tests/shell/test_task_analyzer.sh | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/tools/perf/tests/shell/test_task_analyzer.sh b/tools/perf/tests/shell/test_task_analyzer.sh > > index 0095abbe20ca..a28d784987b4 100755 > > --- a/tools/perf/tests/shell/test_task_analyzer.sh > > +++ b/tools/perf/tests/shell/test_task_analyzer.sh > > @@ -52,7 +52,7 @@ find_str_or_fail() { > > > > # check if perf is compiled with libtraceevent support > > skip_no_probe_record_support() { > > - perf record -e "sched:sched_switch" -a -- sleep 1 2>&1 | grep "libtraceevent is necessary for tracepoint support" && return 2 > > + perf version --build-options | grep HAVE_LIBTRACEEVENT | grep -q OFF && return 2 > > return 0 > > I'll apply this, but please consider adding a: > > perf build --has libtraceevent That's a nice idea. You mean add a script like perf-archive.sh? Perhaps this flag should be supported by perf version instead. Thanks, Ian > subcommand to have that query made more compact and to avoid the two > extra grep. > > BTW, I'll change that to: > > [acme@quaco perf-tools-next]$ perf version --build-options | grep " on .* HAVE_LIBTRACEEVENT" > libtraceevent: [ on ] # HAVE_LIBTRACEEVENT > [acme@quaco perf-tools-next]$ > > replacing "on" with OFF, so that we have just one grep. > > Thanks, > > - Arnaldo > > > } > > > > -- > > 2.41.0 > > > > -- > > - Arnaldo ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] perf tests task_analyzer: Check perf build options for libtraceevent support 2023-07-28 16:01 ` Ian Rogers @ 2023-07-28 18:30 ` Arnaldo Carvalho de Melo 2023-08-03 3:03 ` Aditya Gupta 0 siblings, 1 reply; 8+ messages in thread From: Arnaldo Carvalho de Melo @ 2023-07-28 18:30 UTC (permalink / raw) To: Ian Rogers Cc: Aditya Gupta, jolsa, namhyung, linux-perf-users, linuxppc-dev, maddy, atrajeev, kjain, disgoel, linux-kernel Em Fri, Jul 28, 2023 at 09:01:11AM -0700, Ian Rogers escreveu: > On Fri, Jul 28, 2023 at 7:54 AM Arnaldo Carvalho de Melo > <acme@kernel.org> wrote: > > > > Em Tue, Jul 25, 2023 at 11:46:49AM +0530, Aditya Gupta escreveu: > > > Currently we depend on output of 'perf record -e "sched:sched_switch"', to > > > check whether perf was built with libtraceevent support. > > > > > > Instead, a more straightforward approach can be to check the build options, > > > using 'perf version --build-options', to check for libtraceevent support. > > > > > > When perf is compiled WITHOUT libtraceevent ('make NO_LIBTRACEEVENT=1'), > > > 'perf version --build-options' outputs (output trimmed): > > > > > > ... > > > libtraceevent: [ OFF ] # HAVE_LIBTRACEEVENT > > > ... > > > > > > While, when perf is compiled WITH libtraceevent, > > > > > > 'perf version --build-options' outputs: > > > > > > ... > > > libtraceevent: [ on ] # HAVE_LIBTRACEEVENT > > > ... > > > > > > Suggested-by: Ian Rogers <irogers@google.com> > > > Signed-off-by: Aditya Gupta <adityag@linux.ibm.com> > > > --- > > > > > > tools/perf/tests/shell/test_task_analyzer.sh | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/tools/perf/tests/shell/test_task_analyzer.sh b/tools/perf/tests/shell/test_task_analyzer.sh > > > index 0095abbe20ca..a28d784987b4 100755 > > > --- a/tools/perf/tests/shell/test_task_analyzer.sh > > > +++ b/tools/perf/tests/shell/test_task_analyzer.sh > > > @@ -52,7 +52,7 @@ find_str_or_fail() { > > > > > > # check if perf is compiled with libtraceevent support > > > skip_no_probe_record_support() { > > > - perf record -e "sched:sched_switch" -a -- sleep 1 2>&1 | grep "libtraceevent is necessary for tracepoint support" && return 2 > > > + perf version --build-options | grep HAVE_LIBTRACEEVENT | grep -q OFF && return 2 > > > return 0 > > > > I'll apply this, but please consider adding a: > > > > perf build --has libtraceevent > > That's a nice idea. You mean add a script like perf-archive.sh? Nope, I would just add a new builtin-build.c (or some other more suitable name to query what was built into perf) and then it would just do a simple search on the same array that 'perf version --build-options' currently uses (or the array that it would then share with 'perf build', I haven't looked at the source code.). So instead of a series of fork + execs we would just have one. - Arnaldo > Perhaps this flag should be supported by perf version instead. > > Thanks, > Ian > > > subcommand to have that query made more compact and to avoid the two > > extra grep. > > > > BTW, I'll change that to: > > > > [acme@quaco perf-tools-next]$ perf version --build-options | grep " on .* HAVE_LIBTRACEEVENT" > > libtraceevent: [ on ] # HAVE_LIBTRACEEVENT > > [acme@quaco perf-tools-next]$ > > > > replacing "on" with OFF, so that we have just one grep. > > > > Thanks, > > > > - Arnaldo > > > > > } > > > > > > -- > > > 2.41.0 > > > > > > > -- > > > > - Arnaldo -- - Arnaldo ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] perf tests task_analyzer: Check perf build options for libtraceevent support 2023-07-28 18:30 ` Arnaldo Carvalho de Melo @ 2023-08-03 3:03 ` Aditya Gupta 2023-08-03 7:22 ` Athira Rajeev 0 siblings, 1 reply; 8+ messages in thread From: Aditya Gupta @ 2023-08-03 3:03 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Ian Rogers, jolsa, namhyung, linux-perf-users, linuxppc-dev, maddy, atrajeev, kjain, disgoel, linux-kernel Hi Arnaldo, I am working on a patch for 'perf version --has', and will send a patch next week using that instead of 'perf version --build-options'. You can skip this patch if not needed. Thanks, - Aditya G ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] perf tests task_analyzer: Check perf build options for libtraceevent support 2023-08-03 3:03 ` Aditya Gupta @ 2023-08-03 7:22 ` Athira Rajeev 2023-08-07 5:40 ` Aditya Gupta 0 siblings, 1 reply; 8+ messages in thread From: Athira Rajeev @ 2023-08-03 7:22 UTC (permalink / raw) To: Aditya Gupta Cc: Arnaldo Carvalho de Melo, Ian Rogers, Jiri Olsa, Namhyung Kim, linux-perf-users, linuxppc-dev, Madhavan Srinivasan, Kajol Jain, Disha Goel, linux-kernel > On 03-Aug-2023, at 8:33 AM, Aditya Gupta <adityag@linux.ibm.com> wrote: > > Hi Arnaldo, > I am working on a patch for 'perf version --has', and will send a patch next Hi Aditya, I believe, it will be “perf build —has” option. And not “perf version —has” ? Thanks Athira > week using that instead of 'perf version --build-options'. > > You can skip this patch if not needed. > > Thanks, > - Aditya G ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] perf tests task_analyzer: Check perf build options for libtraceevent support 2023-08-03 7:22 ` Athira Rajeev @ 2023-08-07 5:40 ` Aditya Gupta 0 siblings, 0 replies; 8+ messages in thread From: Aditya Gupta @ 2023-08-07 5:40 UTC (permalink / raw) To: Athira Rajeev Cc: Arnaldo Carvalho de Melo, Ian Rogers, Jiri Olsa, Namhyung Kim, linux-perf-users, linuxppc-dev, Madhavan Srinivasan, Kajol Jain, Disha Goel, linux-kernel On Thu, Aug 03, 2023 at 12:52:50PM +0530, Athira Rajeev wrote: > > > > On 03-Aug-2023, at 8:33 AM, Aditya Gupta <adityag@linux.ibm.com> wrote: > > > > Hi Arnaldo, > > I am working on a patch for 'perf version --has', and will send a patch next > > Hi Aditya, > > I believe, it will be “perf build —has” option. And not “perf version —has” ? Oh okay. I misread. Thanks for pointing it out Athira. Thanks, Aditya G ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] perf tests task_analyzer: Check perf build options for libtraceevent support 2023-07-28 14:54 ` Arnaldo Carvalho de Melo 2023-07-28 16:01 ` Ian Rogers @ 2023-07-29 7:39 ` Aditya Gupta 1 sibling, 0 replies; 8+ messages in thread From: Aditya Gupta @ 2023-07-29 7:39 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: jolsa, irogers, namhyung, linux-perf-users, linuxppc-dev, maddy, atrajeev, kjain, disgoel, linux-kernel On Fri, Jul 28, 2023 at 11:54:11AM -0300, Arnaldo Carvalho de Melo wrote: > Em Tue, Jul 25, 2023 at 11:46:49AM +0530, Aditya Gupta escreveu: > > Currently we depend on output of 'perf record -e "sched:sched_switch"', to > > check whether perf was built with libtraceevent support. > > > > Instead, a more straightforward approach can be to check the build options, > > using 'perf version --build-options', to check for libtraceevent support. > > > > [...] > > > > diff --git a/tools/perf/tests/shell/test_task_analyzer.sh b/tools/perf/tests/shell/test_task_analyzer.sh > > index 0095abbe20ca..a28d784987b4 100755 > > --- a/tools/perf/tests/shell/test_task_analyzer.sh > > +++ b/tools/perf/tests/shell/test_task_analyzer.sh > > @@ -52,7 +52,7 @@ find_str_or_fail() { > > > > # check if perf is compiled with libtraceevent support > > skip_no_probe_record_support() { > > - perf record -e "sched:sched_switch" -a -- sleep 1 2>&1 | grep "libtraceevent is necessary for tracepoint support" && return 2 > > + perf version --build-options | grep HAVE_LIBTRACEEVENT | grep -q OFF && return 2 > > return 0 > > I'll apply this, but please consider adding a: > > perf build --has libtraceevent > > subcommand to have that query made more compact and to avoid the two > extra grep. Okay. As you suggested in another reply, I found the code in builtin-version.c, we can have a "perf build --has" option which can use the `IS_BUILTIN` macro also used by "perf version --build-options". It can support all other feature flags too. You can implement it or I can work on a patch for that ? It should require adding another 'struct option' to 'version_options', and check for the flag in 'cmd_version()'. Will have to look how to get the string passed after '--has'. > > BTW, I'll change that to: > > [acme@quaco perf-tools-next]$ perf version --build-options | grep " on .* HAVE_LIBTRACEEVENT" > libtraceevent: [ on ] # HAVE_LIBTRACEEVENT > [acme@quaco perf-tools-next]$ > > replacing "on" with OFF, so that we have just one grep. Okay. Thanks, - Aditya G ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-08-07 5:41 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-07-25 6:16 [PATCH 1/1] perf tests task_analyzer: Check perf build options for libtraceevent support Aditya Gupta 2023-07-28 14:54 ` Arnaldo Carvalho de Melo 2023-07-28 16:01 ` Ian Rogers 2023-07-28 18:30 ` Arnaldo Carvalho de Melo 2023-08-03 3:03 ` Aditya Gupta 2023-08-03 7:22 ` Athira Rajeev 2023-08-07 5:40 ` Aditya Gupta 2023-07-29 7:39 ` Aditya Gupta
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).