Re: perf & rasd integration plan

Arnaldo Carvalho de Melo
2014-10-07T13:40:28Z

Em Tue, Oct 07, 2014 at 01:23:42PM +0200, Borislav Petkov escreveu:
> On Mon, Oct 06, 2014 at 06:22:43PM -0300, Arnaldo Carvalho de Melo wrote:
> > My preference would be for single object files, but the pressure to have
> > a written in stone library seems to just build up...

> Yeah, I think if we have an alternative way to easily integrate that
> functionality into external projects, we can avoid the need for a lib.

> ...

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

> Ok, that actually sounds like something we should try:

> $ make perf-api-src-pkg

> which would spit a tgz with all the generic stuff perf carries. People
> would simply unpack it in their projects and build it.

> That would require somewhat stable function names so that updating is
> relatively painless and if visible functions change, some sort of a

Right, we now should always think that the great advantage of having
this code and its users in the same repo tree is going away, i.e. we
will not be able to improve the code by fixing mistakes that require
changing its users.

So we should export the bare minimum that tools advocate exporting, like
you guys are doing now by providing the code that shows how you use it.

> README file should say what and why.

Well, at that point we can't do that anymore, we will need instead to
add new methods while keeping the existing ones in place and with the
same semantics, at most for something really annoying to maintain we
will have to add annoying warnings telling that in a year or two
something will go away, it was deprecated, annoy the maintainer of your
tool to update their project.

> Sounds like a good alternative to a lib to me...

Yes, should be interesting to experiment with this, at the very least it
can be considered a step into the direction of a full blown library, if
we ever feel that it is strictly needed.

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

> Yep.

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

s/more/move/g

> > tools/perf/util/evlist.c to tools/lib/api/perf/, some untanglement work
> > is needed.

> Yep.

- Arnaldo