All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>, Andi Kleen <ak@linux.intel.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 12/16] perf tools: Move and globalize perf_evsel__find_pmu() and perf_evsel__is_aux_event()
Date: Sat, 18 Apr 2020 09:04:03 -0300	[thread overview]
Message-ID: <20200418120403.GB6031@kernel.org> (raw)
In-Reply-To: <20200418115017.GA6031@kernel.org>

Em Sat, Apr 18, 2020 at 08:50:17AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, Apr 01, 2020 at 01:16:09PM +0300, Adrian Hunter escreveu:
> > Move and globalize 2 functions so that they can be reused.
> 
> So this breaks this:
> 
> [acme@five perf]$ perf test -v python
> Couldn't bump rlimit(MEMLOCK), failures may take place when creating BPF maps, etc
> 19: 'import perf' in python                               :
> --- start ---
> test child forked, pid 168414
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> ImportError: /tmp/build/perf/python/perf.so: undefined symbol: perf_pmu__scan
> test child finished with -1
> ---- end ----
> 'import perf' in python: FAILED!
> [acme@five perf]$
> 
> I'm trying to fix...

I solved this by moving those functions to tools/perf/util/pmu.c
instead.

Please consider running 'perf test' before sending your patches to me
next time,

Thanks,

- Arnaldo
  
> > Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
> > ---
> >  tools/perf/util/auxtrace.c | 19 -------------------
> >  tools/perf/util/evsel.c    | 20 ++++++++++++++++++++
> >  tools/perf/util/evsel.h    |  3 +++
> >  3 files changed, 23 insertions(+), 19 deletions(-)
> > 
> > diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c
> > index 809a09e75c55..33ad33378a90 100644
> > --- a/tools/perf/util/auxtrace.c
> > +++ b/tools/perf/util/auxtrace.c
> > @@ -58,25 +58,6 @@
> >  #include "symbol/kallsyms.h"
> >  #include <internal/lib.h>
> >  
> > -static struct perf_pmu *perf_evsel__find_pmu(struct evsel *evsel)
> > -{
> > -	struct perf_pmu *pmu = NULL;
> > -
> > -	while ((pmu = perf_pmu__scan(pmu)) != NULL) {
> > -		if (pmu->type == evsel->core.attr.type)
> > -			break;
> > -	}
> > -
> > -	return pmu;
> > -}
> > -
> > -static bool perf_evsel__is_aux_event(struct evsel *evsel)
> > -{
> > -	struct perf_pmu *pmu = perf_evsel__find_pmu(evsel);
> > -
> > -	return pmu && pmu->auxtrace;
> > -}
> > -
> >  /*
> >   * Make a group from 'leader' to 'last', requiring that the events were not
> >   * already grouped to a different leader.
> > diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> > index 60e6cd49dee3..d4ab073c9fe7 100644
> > --- a/tools/perf/util/evsel.c
> > +++ b/tools/perf/util/evsel.c
> > @@ -44,6 +44,7 @@
> >  #include "stat.h"
> >  #include "string2.h"
> >  #include "memswap.h"
> > +#include "pmu.h"
> >  #include "util.h"
> >  #include "../perf-sys.h"
> >  #include "util/parse-branch-options.h"
> > @@ -100,6 +101,25 @@ int perf_evsel__object_config(size_t object_size,
> >  	return 0;
> >  }
> >  
> > +struct perf_pmu *perf_evsel__find_pmu(struct evsel *evsel)
> > +{
> > +	struct perf_pmu *pmu = NULL;
> > +
> > +	while ((pmu = perf_pmu__scan(pmu)) != NULL) {
> > +		if (pmu->type == evsel->core.attr.type)
> > +			break;
> > +	}
> > +
> > +	return pmu;
> > +}
> > +
> > +bool perf_evsel__is_aux_event(struct evsel *evsel)
> > +{
> > +	struct perf_pmu *pmu = perf_evsel__find_pmu(evsel);
> > +
> > +	return pmu && pmu->auxtrace;
> > +}
> > +
> >  #define FD(e, x, y) (*(int *)xyarray__entry(e->core.fd, x, y))
> >  
> >  int __perf_evsel__sample_size(u64 sample_type)
> > diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
> > index e64ed4202cab..a463bc65b001 100644
> > --- a/tools/perf/util/evsel.h
> > +++ b/tools/perf/util/evsel.h
> > @@ -158,6 +158,9 @@ int perf_evsel__object_config(size_t object_size,
> >  			      int (*init)(struct evsel *evsel),
> >  			      void (*fini)(struct evsel *evsel));
> >  
> > +struct perf_pmu *perf_evsel__find_pmu(struct evsel *evsel);
> > +bool perf_evsel__is_aux_event(struct evsel *evsel);
> > +
> >  struct evsel *perf_evsel__new_idx(struct perf_event_attr *attr, int idx);
> >  
> >  static inline struct evsel *evsel__new(struct perf_event_attr *attr)
> > -- 
> > 2.17.1
> > 
> 
> -- 
> 
> - Arnaldo

-- 

- Arnaldo

  reply	other threads:[~2020-04-18 12:04 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-01 10:15 [PATCH 00/16] perf intel-pt: Sampling improvements Adrian Hunter
2020-04-01 10:15 ` [PATCH 01/16] perf auxtrace: Add ->evsel_is_auxtrace() callback Adrian Hunter
2020-04-22 12:17   ` [tip: perf/core] " tip-bot2 for Adrian Hunter
2020-04-01 10:15 ` [PATCH 02/16] perf intel-pt: Implement " Adrian Hunter
2020-04-22 12:17   ` [tip: perf/core] " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 03/16] perf intel-bts: " Adrian Hunter
2020-04-22 12:17   ` [tip: perf/core] " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 04/16] perf arm-spe: " Adrian Hunter
2020-04-02  3:03   ` Leo Yan
2020-04-22 12:17   ` [tip: perf/core] " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 05/16] perf cs-etm: " Adrian Hunter
2020-04-01 17:11   ` Mathieu Poirier
2020-04-22 12:17   ` [tip: perf/core] " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 06/16] perf s390-cpumsf: " Adrian Hunter
2020-04-01 14:10   ` Thomas Richter
2020-04-22 12:17   ` [tip: perf/core] " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 07/16] perf auxtrace: For reporting purposes, un-group AUX area event Adrian Hunter
2020-04-22 12:17   ` [tip: perf/core] " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 08/16] perf auxtrace: Add an option to synthesize callchains for regular events Adrian Hunter
2020-04-22 12:17   ` [tip: perf/core] " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 09/16] perf thread-stack: Add thread_stack__sample_late() Adrian Hunter
2020-04-22 12:17   ` [tip: perf/core] " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 10/16] perf tools: Add support for synthesized sample type Adrian Hunter
2020-04-16 14:54   ` Arnaldo Carvalho de Melo
2020-04-16 14:57     ` Arnaldo Carvalho de Melo
2020-04-16 15:01       ` Arnaldo Carvalho de Melo
2020-04-22 12:17   ` [tip: perf/core] perf evsel: Be consistent when looking which evsel PERF_SAMPLE_ bits are set tip-bot2 for Adrian Hunter
2020-04-22 12:17   ` [tip: perf/core] perf evsel: Add support for synthesized sample type tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 11/16] perf intel-pt: Add support for synthesizing callchains for regular events Adrian Hunter
2020-04-16 15:14   ` Arnaldo Carvalho de Melo
2020-04-17 13:50     ` Adrian Hunter
2020-04-17 21:37       ` Arnaldo Carvalho de Melo
2020-04-20  3:04         ` Andi Kleen
2020-04-22 12:17   ` [tip: perf/core] " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 12/16] perf tools: Move and globalize perf_evsel__find_pmu() and perf_evsel__is_aux_event() Adrian Hunter
2020-04-18 11:50   ` Arnaldo Carvalho de Melo
2020-04-18 12:04     ` Arnaldo Carvalho de Melo [this message]
2020-04-22 12:17   ` [tip: perf/core] perf evsel: " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 13/16] perf tools: Move leader-sampling configuration Adrian Hunter
2020-04-16 15:29   ` Arnaldo Carvalho de Melo
2020-04-22 12:17   ` [tip: perf/core] perf evlist: " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 14/16] perf tools: Rearrange perf_evsel__config_leader_sampling() Adrian Hunter
2020-04-22 12:17   ` [tip: perf/core] perf evsel: " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 15/16] perf tools: Allow multiple read formats Adrian Hunter
2020-04-22 12:17   ` [tip: perf/core] perf evlist: " tip-bot2 for Adrian Hunter
2020-04-01 10:16 ` [PATCH 16/16] perf tools: Add support for leader-sampling with AUX area events Adrian Hunter
2020-04-22 12:17   ` [tip: perf/core] " tip-bot2 for Adrian Hunter

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=20200418120403.GB6031@kernel.org \
    --to=arnaldo.melo@gmail.com \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.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.