From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Borislav Petkov <bp@alien8.de>
Cc: Jean Pihet <jean.pihet@linaro.org>,
"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>,
Thomas Gleixner <tglx@linutronix.de>,
Matt Fleming <matt@console-pimps.org>
Subject: Re: perf & rasd integration plan
Date: Mon, 6 Oct 2014 18:22:43 -0300 [thread overview]
Message-ID: <20141006212243.GE14113@kernel.org> (raw)
In-Reply-To: <20141006195349.GE20739@pd.tnic>
Em Mon, Oct 06, 2014 at 09:53:49PM +0200, Borislav Petkov escreveu:
> On Mon, Oct 06, 2014 at 04:12:27PM -0300, Arnaldo Carvalho de Melo wrote:
> > Right, and it is being a great exercise, thanks for the patience so far
> > ;-)
>
> I know, this is your secret agenda to keep me at bay working on this! :-P
>
> > Looking at those ifdefs we see things that are specific to tools/perf/,
> > like perf_evsel having a struct hists embedded... I.e. that is of no
> > interest whatsoever (so far) to rasd, and in turn pulls other object
> > files.
> >
> > So I think that right now we need to look at those ifdefs and go on
> > making what is in tools/perf/util/ stop using it somehow, so that what
> > then gets moved to tools/lib/api/perf/ (I guess this is where it should
> > be, opinions?) have that sorted out.
> > I.e. what goes to tools/lib/api/perf/ is what is common to the needs of
> > tools/perf/ and rasd (wherever it may roam).
> > Perhaps something like I did for sock/inet_sock/inet_connection_sock
> > ages ago... I.e. the tools that want a hists will have a
> > struct hists_evsel {
> > struct perf_evsel evsel;
> > struct hists hists;
> > };
> > etc.
> > Experimenting with that, as it is the only thing ifdefed out in rasd's
> > copy of evsel.h...
> Right, this all reads like it is going in the right direction but the
> more important question IMO is are we doing a libperf or are we still
> doing tools/lib/api/perf/ of single object files to which people can
> link?
My preference would be for single object files, but the pressure to have
a written in stone library seems to just build up...
> Because if it is the second - and it sounds to me like it is - how do
> you propose we link with external projects? IOW, if I want to have rasd
> build *without* the kernel tree, is a simple
> cp -r tools/lib/api/ <my_project>/path/to/perf/lib/
> work?
It should, no matter if we end up with a library.
What I'm doing these days to test if perf builds on multiple distros is:
#!/bin/sh
remotebuild() {
target=$1
perfpkg=$2
cmd="rm -rf ${perfpkg} ; tar xf ${perfpkg}.tar.gz && cd ${perfpkg} && rm -rf /tmp/build/perf ; mkdir -p /tmp/build/perf && make -C tools/perf O=/tmp/build/perf install && make -C tools/perf build-test"
scp ${perfpkg}.tar.gz gita@${target}:. && \
ssh gita@${target} "${cmd}"
}
targets="fedora14 opensuse12.3 fedora19 ubuntu13.10"
perfpkg=perf-3.17.0-rc4
for target in ${targets} ; do
remotebuild ${target} ${perfpkg}
done
After doing a 'make perf-targz-src-pkg'
I.e. no kernel sources involved on the machines where I build test.
IOW, it is untangled from the kernel sources. As tools/lib/api/ should
as well.
> I mean, I don't know and I'm just asking. Is that the proposed way? Are
> we fine with that? Do we want something different, maybe even a lib? Is
> it time for a lib even?
Well, the rasd experience is serving to show areas where there is
unnecessary entanglement (hists inside perf_event, etc, the ifdefs you
put in place).
I'm working to remove the ones that are in rasd.c, aiming to have a
tools/lib/api/ tree that can be used to build rasd and tools/perf/.
What I don't want to do is to simply straight more
tools/perf/util/evlist.c to tools/lib/api/perf/, some untanglement work
is needed.
> Because the whole perf functionality is being cravingly ogled by other
> users - I know Matt wants it for cache QoS or whatever it is called and
> there are probably a whole lot of projects which would like to process
> events programatically in userspace.
>
> So what I'm saying is, we probably should have a nice clean way
> to be able to share that code with external projects instead of
> external projects duplicating and building a whole library around
> perf_event_open() and the likes...
Agreed, hopefully we'll get that, finally.
> Just a couple of thoughts...
>
> --
> Regards/Gruss,
> Boris.
>
> Sent from a fat crate under my desk. Formatting is fine.
> --
next prev parent reply other threads:[~2014-10-06 21:22 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
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 [this message]
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=20141006212243.GE14113@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=matt@console-pimps.org \
--cc=mingo@kernel.org \
--cc=rric@kernel.org \
--cc=tglx@linutronix.de \
/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.