linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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 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

* 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

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).