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

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