All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>, lkml <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Michael Petlan <mpetlan@redhat.com>
Subject: Re: [RFC] perf trace: Fix compilation error for make NO_LIBBPF=1 DEBUG=1
Date: Mon, 18 May 2020 18:43:45 +0200	[thread overview]
Message-ID: <20200518164345.GC11620@krava> (raw)
In-Reply-To: <20200518160953.GJ24211@kernel.org>

On Mon, May 18, 2020 at 01:09:53PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Mon, May 18, 2020 at 04:35:28PM +0200, Jiri Olsa escreveu:
> > On Mon, May 18, 2020 at 11:19:15AM -0300, Arnaldo Carvalho de Melo wrote:
> > > Em Mon, May 18, 2020 at 04:10:27PM +0200, Jiri Olsa escreveu:
> > > > I haven't tested if this breaks some perf trace functionality,
> > > > hence RFC ;-)
> > > 
> > > Thanks for the patch, looks ok, applying, please let me know if you need
> > > to do something else with it.
> > 
> > just wasn't sure the hook will work with NULL,
> > so if you're ok with it, then it's ok ;-)
> > 
> > thanks,
> > jirka
> 
> you forgot this, right?

ugh yea.. I did not test the test :-\ sry

jirka

> 
> 
> diff --git a/tools/perf/tests/make b/tools/perf/tests/make
> index c3c59def9f87..29ce0da7fca6 100644
> --- a/tools/perf/tests/make
> +++ b/tools/perf/tests/make
> @@ -145,6 +145,7 @@ run += make_no_libaudit
>  run += make_no_libbionic
>  run += make_no_auxtrace
>  run += make_no_libbpf
> +run += make_no_libbpf_DEBUG
>  run += make_with_babeltrace
>  run += make_with_clangllvm
>  run += make_help
>  
> > > 
> > > - Arnaldo
> > >  
> > > > The perf compilation fails for NO_LIBBPF=1 DEBUG=1 with:
> > > > 
> > > >   $ make NO_LIBBPF=1 DEBUG=1
> > > >     BUILD:   Doing 'make -j8' parallel build
> > > >     CC       builtin-trace.o
> > > >     LD       perf-in.o
> > > >     LINK     perf
> > > >   /usr/bin/ld: perf-in.o: in function `trace__find_bpf_map_by_name':
> > > >   /home/jolsa/kernel/linux-perf/tools/perf/builtin-trace.c:4608: undefined reference to `bpf_object__find_map_by_name'
> > > >   collect2: error: ld returned 1 exit status
> > > >   make[2]: *** [Makefile.perf:631: perf] Error 1
> > > >   make[1]: *** [Makefile.perf:225: sub-make] Error 2
> > > >   make: *** [Makefile:70: all] Error 2
> > > > 
> > > > Moving trace__find_bpf_map_by_name calls under HAVE_LIBBPF_SUPPORT
> > > > ifdef and add make test for this.
> > > > 
> > > > Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> > > > ---
> > > >  tools/perf/builtin-trace.c | 54 ++++++++++++++++++++++++--------------
> > > >  tools/perf/tests/make      |  1 +
> > > >  2 files changed, 35 insertions(+), 20 deletions(-)
> > > > 
> > > > diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
> > > > index 56bcf1ab19f8..61bafca1018a 100644
> > > > --- a/tools/perf/builtin-trace.c
> > > > +++ b/tools/perf/builtin-trace.c
> > > > @@ -3174,6 +3174,26 @@ static int trace__set_ev_qualifier_tp_filter(struct trace *trace)
> > > >  }
> > > >  
> > > >  #ifdef HAVE_LIBBPF_SUPPORT
> > > > +static struct bpf_map *trace__find_bpf_map_by_name(struct trace *trace, const char *name)
> > > > +{
> > > > +	if (trace->bpf_obj == NULL)
> > > > +		return NULL;
> > > > +
> > > > +	return bpf_object__find_map_by_name(trace->bpf_obj, name);
> > > > +}
> > > > +
> > > > +static void trace__set_bpf_map_filtered_pids(struct trace *trace)
> > > > +{
> > > > +	trace->filter_pids.map = trace__find_bpf_map_by_name(trace, "pids_filtered");
> > > > +}
> > > > +
> > > > +static void trace__set_bpf_map_syscalls(struct trace *trace)
> > > > +{
> > > > +	trace->syscalls.map = trace__find_bpf_map_by_name(trace, "syscalls");
> > > > +	trace->syscalls.prog_array.sys_enter = trace__find_bpf_map_by_name(trace, "syscalls_sys_enter");
> > > > +	trace->syscalls.prog_array.sys_exit  = trace__find_bpf_map_by_name(trace, "syscalls_sys_exit");
> > > > +}
> > > > +
> > > >  static struct bpf_program *trace__find_bpf_program_by_title(struct trace *trace, const char *name)
> > > >  {
> > > >  	if (trace->bpf_obj == NULL)
> > > > @@ -3512,6 +3532,20 @@ static void trace__delete_augmented_syscalls(struct trace *trace)
> > > >  	trace->bpf_obj = NULL;
> > > >  }
> > > >  #else // HAVE_LIBBPF_SUPPORT
> > > > +static struct bpf_map *trace__find_bpf_map_by_name(struct trace *trace __maybe_unused,
> > > > +						   const char *name __maybe_unused)
> > > > +{
> > > > +	return NULL;
> > > > +}
> > > > +
> > > > +static void trace__set_bpf_map_filtered_pids(struct trace *trace __maybe_unused)
> > > > +{
> > > > +}
> > > > +
> > > > +static void trace__set_bpf_map_syscalls(struct trace *trace __maybe_unused)
> > > > +{
> > > > +}
> > > > +
> > > >  static int trace__set_ev_qualifier_bpf_filter(struct trace *trace __maybe_unused)
> > > >  {
> > > >  	return 0;
> > > > @@ -4600,26 +4634,6 @@ static int trace__parse_cgroups(const struct option *opt, const char *str, int u
> > > >  	return 0;
> > > >  }
> > > >  
> > > > -static struct bpf_map *trace__find_bpf_map_by_name(struct trace *trace, const char *name)
> > > > -{
> > > > -	if (trace->bpf_obj == NULL)
> > > > -		return NULL;
> > > > -
> > > > -	return bpf_object__find_map_by_name(trace->bpf_obj, name);
> > > > -}
> > > > -
> > > > -static void trace__set_bpf_map_filtered_pids(struct trace *trace)
> > > > -{
> > > > -	trace->filter_pids.map = trace__find_bpf_map_by_name(trace, "pids_filtered");
> > > > -}
> > > > -
> > > > -static void trace__set_bpf_map_syscalls(struct trace *trace)
> > > > -{
> > > > -	trace->syscalls.map = trace__find_bpf_map_by_name(trace, "syscalls");
> > > > -	trace->syscalls.prog_array.sys_enter = trace__find_bpf_map_by_name(trace, "syscalls_sys_enter");
> > > > -	trace->syscalls.prog_array.sys_exit  = trace__find_bpf_map_by_name(trace, "syscalls_sys_exit");
> > > > -}
> > > > -
> > > >  static int trace__config(const char *var, const char *value, void *arg)
> > > >  {
> > > >  	struct trace *trace = arg;
> > > > diff --git a/tools/perf/tests/make b/tools/perf/tests/make
> > > > index 5d0c3a9c47a1..c3c59def9f87 100644
> > > > --- a/tools/perf/tests/make
> > > > +++ b/tools/perf/tests/make
> > > > @@ -84,6 +84,7 @@ make_no_libaudit    := NO_LIBAUDIT=1
> > > >  make_no_libbionic   := NO_LIBBIONIC=1
> > > >  make_no_auxtrace    := NO_AUXTRACE=1
> > > >  make_no_libbpf	    := NO_LIBBPF=1
> > > > +make_no_libbpf_DEBUG := NO_LIBBPF=1 DEBUG=1
> > > >  make_no_libcrypto   := NO_LIBCRYPTO=1
> > > >  make_with_babeltrace:= LIBBABELTRACE=1
> > > >  make_no_sdt	    := NO_SDT=1
> > > > -- 
> > > > 2.25.4
> > > > 
> > > 
> > > -- 
> > > 
> > > - Arnaldo
> > > 
> > 
> 
> -- 
> 
> - Arnaldo
> 


      reply	other threads:[~2020-05-18 16:43 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-18 14:10 [RFC] perf trace: Fix compilation error for make NO_LIBBPF=1 DEBUG=1 Jiri Olsa
2020-05-18 14:19 ` Arnaldo Carvalho de Melo
2020-05-18 14:35   ` Jiri Olsa
2020-05-18 15:20     ` Arnaldo Carvalho de Melo
2020-05-18 16:09     ` Arnaldo Carvalho de Melo
2020-05-18 16:43       ` Jiri Olsa [this message]

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=20200518164345.GC11620@krava \
    --to=jolsa@redhat.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=arnaldo.melo@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=mpetlan@redhat.com \
    --cc=namhyung@kernel.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.