All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Jean Pihet <jean.pihet@linaro.org>
Cc: Borislav Petkov <bp@alien8.de>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Fu Wei <fu.wei@linaro.org>, Robert Richter <rric@kernel.org>,
	Jiri Olsa <jolsa@redhat.com>, David Ahern <dsahern@gmail.com>,
	Ingo Molnar <mingo@kernel.org>
Subject: Re: perf & rasd integration plan
Date: Tue, 30 Sep 2014 10:24:16 -0300	[thread overview]
Message-ID: <20140930132416.GB2799@kernel.org> (raw)
In-Reply-To: <CAFrcx1kufO2yj7--UiL841Yp5Es5=WqjL__Yzg=-+nPV5XoohA@mail.gmail.com>

Em Tue, Sep 30, 2014 at 11:06:21AM +0200, Jean Pihet escreveu:
> The RAS Deamon (rasd) as available at [1] and the development version
> at [2], allows to enable kernel tracepoints and outputs the
> tracepoints fields according to the kernel format.
> 
> [1] https://git.kernel.org/cgit/utils/ras/rasd.git/
> [2] https://git.linaro.org/people/jean.pihet/rasd.git
> 
> rasd currently is a duplicate of the perf tool code, ultimately perf
> and rasd will use the same common code. The goal is to factor out the
> common code from perf and place it in small librairies in tools/lib.
> 
> Here is the code that rasd currently uses and that should be moved to tools/lib:
> 
> - debugfs: already in tools/lib/api/fs
>   . mount and retrieve path
> 
> - evlist: tools/perf/util/evlist.[ch]
>   . create and init new evlist,
>   . set cpu and thread maps,
>   . add events to evlist,
>   . init and use internal event id,
>   . alloc and mmap events buffers, manage file descriptors,
>   . enable events,
>   . read events buffers, parse data,
>   . unmap and free buffers
> 
> - evsel: tools/perf/util/evsel.[ch]
>   . create and init new tracepoints events,
>   . init and use internal event id,
>   . open events, manage fds,
>   . close and free events
> 
> - trace-event: tools/perf/util/trace-event.[ch] and
>   tools/perf/util/trace-event-parse.c
>   . retrieve and parse events format (using event-parse),
>   . print out events fields
> 
> - event-parse: already in tools/lib/traceevent/event-parse.[ch]
>   . retrieve and parse events format,
>   . parse events format and print out events fields
> 
> - trace-seq: already in tools/lib/traceevent/trace-seq.c
>   . format output string for event fields
> 
> - events plugins: already in tools/lib/traceevent/event-plugin.c
> 
> - util: tools/perf/util/util.[ch]
>   . files open/read,
>   . manage events attributes,
>   . various macros
> 
> - test events attributes: tools/perf/tests/attr.c
>   . test_attr__open()
> 
> - thread: tools/perf/util/thread_map.[ch] and
> - cpu: tools/perf/util/cpumap.[ch]
>   . init and manage process maps
> 
> - xyarray: tools/perf/util/xyarray.[ch]
> 
> - syscall: tools/perf/perf-sys.h
> 
> - cgroup: tools/perf/util/cgroup.[ch]
> 
> The plan is to move the small and generic functions first: util,
> xyarray, cpumap, thread_map etc; then evlist, evsel, trace-event,
> trace-event-parse; and finally integrate rasd into the tools/ dir.
> 
> Any thought? Can evlist, evsel etc. be moved at once?
> 
> Patches should come soon, when time allows.

Why don't you add it to tools/rasd/ and in tools/rasd/Makefile you just
go on and add tools/perf/util/evlist.o et all to be linked directly, as
a first step.

Then, as a second step, we can create a tools/lib/perf/evlist.c having
what is currently used by both tools/perf/ and tools/rasd/, i.e. what is
proven to be useful for something other than perf.

As the need arises, we go on moving things into tools/lib/perf/evlist.c
et all from wherever it appeared first, be it from tools/rasd/,
tools/perf/util/evlist.c or anywhere else.

Initial rule being that once it is used by multiple tools living in
tools/, then it deserves a place in tools/lib/perf/.

Ditto for other stuff currently living in tools/perf/util/.

- Arnaldo

  reply	other threads:[~2014-09-30 13:24 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-30  9:06 perf & rasd integration plan Jean Pihet
2014-09-30 13:24 ` Arnaldo Carvalho de Melo [this message]
2014-10-05 17:48   ` Borislav Petkov
2014-10-05 18:24     ` Jiri Olsa
2014-10-05 18:45       ` Borislav Petkov
2014-10-05 19:24       ` Chuck Ebbert
2014-10-05 19:28         ` Jiri Olsa
2014-10-06  6:53       ` Jean Pihet
2014-10-08  6:59         ` Jiri Olsa
2014-10-06  9:07   ` Robert Richter
2014-10-06 13:44     ` Jean Pihet
2014-10-06 14:58     ` Arnaldo Carvalho de Melo
2014-10-06 15:01       ` Borislav Petkov
2014-10-06 15:08         ` Arnaldo Carvalho de Melo
2014-10-06 15:16           ` Borislav Petkov
2014-10-06 15:02       ` Jean Pihet
2014-10-06 15:07 ` Arnaldo Carvalho de Melo
2014-10-06 15:16   ` Borislav Petkov
2014-10-06 19:12     ` Arnaldo Carvalho de Melo
2014-10-06 19:53       ` Borislav Petkov
2014-10-06 21:22         ` Arnaldo Carvalho de Melo
2014-10-07 11:23           ` Borislav Petkov
2014-10-07 13:40             ` Arnaldo Carvalho de Melo
2014-10-07 13:49               ` Borislav Petkov
2014-10-07 13:55                 ` Arnaldo Carvalho de Melo
2014-10-07 14:02                   ` Borislav Petkov
2014-10-07 14:13                     ` Arnaldo Carvalho de Melo
2014-10-06 21:26 ` [PATCH 1/1] rasd: Use perf_evlist__open() instead of open coded Arnaldo Carvalho de Melo
2014-10-07  8:45   ` Jean Pihet
2014-10-07 13:32     ` Arnaldo Carvalho de Melo
2014-10-07 14:04       ` Borislav Petkov
2014-10-07 14:17         ` Arnaldo Carvalho de Melo
2014-10-10 20:07         ` Arnaldo Carvalho de Melo
2014-10-10 20:28           ` Borislav Petkov
2014-10-10 20:41             ` Arnaldo Carvalho de Melo
2014-10-10 20:44               ` Borislav Petkov
2014-10-13  7:29                 ` Jean Pihet
2014-10-14 13:56                   ` Jiri Olsa
2014-10-14 14:02                     ` Arnaldo Carvalho de Melo
2014-10-14 14:22                       ` Jiri Olsa
2014-10-14 15:17                         ` Borislav Petkov
2014-10-14 15:20                           ` Jean Pihet
2014-10-14 14:19                     ` David Ahern
2014-10-14 17:09                       ` Arnaldo Carvalho de Melo

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=20140930132416.GB2799@kernel.org \
    --to=acme@kernel.org \
    --cc=bp@alien8.de \
    --cc=dsahern@gmail.com \
    --cc=fu.wei@linaro.org \
    --cc=jean.pihet@linaro.org \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=rric@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.