Re: [PATCHv2 1/2] perf tools: Collect tracing event data files directly

Ingo Molnar
2011-10-10T05:24:43Z

* Steven Rostedt <rostedt@goodmis.org> wrote:

> Good to see your email is back :)
>
>
> On Wed, 2011-09-28 at 18:56 +0200, Ingo Molnar wrote:
> > * Frederic Weisbecker <fweisbec@gmail.com> wrote:
> >
> > > > > But it seems Steve's patches are not completely uncontroversial
> > > > > because of some crazy disagreements on where the
> > > > > libparsevent.so should lay (tools generic or tied to perf).
> > > >
> > > > Which to me seems to be a silly road block, in which I never got
> > > > a clear answer for.
> > >
> > > Yeah we need to sort that out with Ingo.
> >
> > Basically, since it's not at all clear to me where these things (and
> > APIs) will go, I'd be much more comfortable with this starting out as
> > tools/perf/lib/ - we can still split it out later on. Merging it in
> > will be a lot harder.
>
> I would actually argue that merging is much easier than splitting
> something up. [...]

Technically it's somewhat easier - socially, not.

> [...] If A depends on B, merging B back into A is trivial. But if B
> is a part of A, breaking it out of A is a much more difficult task,
> as the boundaries of A and B are not so easy to find and the
> coupling of the two is much tighter.

That's a technical problem. In reality we can split up and merge
projects of very significant size just fine. I've done split-ups and
factorings-out from millions of lines of code impact. tools/perf is
still well within such size boundaries.

> I find trying to break things out of perf is very hard to do as the
> dependencies are throughout all of perf, and no one seems to agree
> on how to do so.

Then it would be absolute madness to make that non-agreement external
and hard-code a separate social structure for it!

Libraries are for *boring* infrastructure stuff *everyone agrees on*.

They are absolutely lousy arbitrators of technical disagreement and
if there's a serious disagreement they can easily become an absolute
nightmare socially and a technical distraction. How difficult is this
to understand?

Please work out disagreements with Arnaldo and do librarization
within perf if you are interested in that angle. If those internal
interfaces become visibly boring and are consistently used by
everything in a way that every main contributor agrees on then we can
perhaps librarize it. Not the other way around.

Thanks,

Ingo