Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1287468

Re: [PATCH v2 14/14] perf tools: Move subcommand framework and related utils to libapi

From Josh Poimboeuf <jpoimboe@redhat.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2 14/14] perf tools: Move subcommand framework and related utils to libapi
Date 2015-12-09 13:40 +0100
Message-ID <qDMci-8ov-9@gated-at.bofh.it> (permalink)
References (5 earlier) <qDwqR-6yd-9@gated-at.bofh.it> <qDyj0-7Je-11@gated-at.bofh.it> <qDyVI-8dx-19@gated-at.bofh.it> <qDzyq-fP-3@gated-at.bofh.it> <qDHYZ-5KQ-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Wed, Dec 09, 2015 at 09:03:43AM +0100, Ingo Molnar wrote:
> 
> * Josh Poimboeuf <jpoimboe@redhat.com> wrote:
> 
> > > > wouldn't necessarily be a clean split.  It would also possibly create more 
> > > > room for error for the users of libapi, since there would then be three 
> > > > config interfaces instead of one.
> > > 
> > > Humm, and now that you talk... libapi was supposed to be just sugar coating 
> > > kernel APIs, perhaps we need to put it somewhere else in tools/lib/ than in 
> > > tools/lib/api/?
> > 
> > Ah, I didn't realize libapi was a kernel API abstraction library.  Shall we put 
> > it in tools/lib/util instead?
> 
> Yay, naming discussion! ;-)

Oh boy! ;-)

> So if this is about abstracting out the (Git derived) command-line option parsing 
> UI and help system, 'util' sounds a bit too generic.
> 
> We could call it something like 'lib/cmdline', 'lib/options'?
> 
> The (old) argument against making too finegrained user-space libraries was that 
> shared libraries do have extra runtime costs - this thinking resulted in catch-all 
> super-libraries like libgtk:
> 
>   size /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
>      text    data     bss     dec     hex filename
>   7199789   57712   15128 7272629  6ef8b5 /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
> 
> But in tools/ we typically link the libraries statically so there's no shared 
> library cost to worry about. (Build time linking is a good idea anyway, should we 
> ever want to make use of link-time optimizations. It also eliminates version skew 
> and library compatibility breakage.)
> 
> The other reason for the emergence of super-libraries was the high setup cost of 
> new libraries: it's a lot easier to add yet another unrelated API to libgtk than 
> to start up a whole new project and a new library. But this setup cost is very low 
> in tools/ - one of the advantage of shared repositories.
> 
> So I think in tools/lib/ we can continue to do a clean topical separation of 
> libraries, super-libraries are not needed.

I definitely agree that for the reasons you outlined, something like
'lib/cmdline' would be a good idea.  Except... there's a wrinkle, of
course.

The library also includes non-cmdline-related dependencies.  And these
dependencies are directly used by perf as well.  So if we name it
'cmdline', perf would have includes like:

#include <cmdline/pager.h>
#include <cmdline/strbuf.h>
#include <cmdline/term.h>
#include <cmdline/wrapper.h>
...etc...

So it would be using several functions from the 'cmdline' library which
are unrelated to 'cmdline'.

For that reason I would vote to name it 'lib/util'.  But I don't really
care, I'd be ok with 'lib/marshmallow' if that's what you guys wanted
:-)

Thoughts?

-- 
Josh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 00/14] perf tools: Move perf subcommand framework into lib/tools Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 05:30 +0100
  [PATCH v2 02/14] perf: Use -iquote for local include paths Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 05:30 +0100
  [PATCH v2 10/14] perf: Move cmd_version() to builtin-version.c Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 05:30 +0100
    [tip:perf/core] perf tools: Move cmd_version()   to builtin-version.c tip-bot for Josh Poimboeuf <tipbot@zytor.com> - 2015-12-10 09:20 +0100
  [PATCH v2 11/14] perf: Move help_unknown_cmd() to its own file Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 05:30 +0100
  [PATCH v2 09/14] perf: Remove check for unused PERF_PAGER_IN_USE Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 05:30 +0100
  [PATCH v2 06/14] perf: Split up cache.h Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 05:30 +0100
  [PATCH v2 04/14] perf: Move term functions out of util.c Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 05:30 +0100
    Re: [PATCH v2 04/14] perf: Move term functions out of util.c Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-12-09 17:00 +0100
    [tip:perf/core] perf tools: Move term functions out of util.c tip-bot for Josh Poimboeuf <tipbot@zytor.com> - 2015-12-10 09:20 +0100
  [PATCH v2 08/14] perf: Save cmdline arguments earlier Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 05:30 +0100
    [tip:perf/core] perf tools: Save cmdline arguments earlier tip-bot for Josh Poimboeuf <tipbot@zytor.com> - 2015-12-10 09:20 +0100
  [PATCH v2 07/14] perf: Remove cache.h Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 05:30 +0100
  [PATCH v2 13/14] perf tools: Move tools/lib/string.c to libapi Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 05:30 +0100
  Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 20:20 +0100
    Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-12-08 20:50 +0100
      Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-08 22:50 +0100
        Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-12-08 23:30 +0100
          Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-09 00:10 +0100
            Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Ingo Molnar <mingo@kernel.org> - 2015-12-09 09:10 +0100
              Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-09 13:40 +0100
                Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-12-09 17:00 +0100
                Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-09 20:00 +0100
                Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Namhyung Kim <namhyung@kernel.org> - 2015-12-10 04:00 +0100
                Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-10 16:00 +0100
                Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-10 22:40 +0100
                Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-12-11 12:30 +0100
                Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-12-10 14:00 +0100
                Re: [PATCH v2 14/14] perf tools: Move subcommand framework and  related utils to libapi Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-10 16:20 +0100
  Re: [PATCH v2 00/14] perf tools: Move perf subcommand framework into  lib/tools Namhyung Kim <namhyung@kernel.org> - 2015-12-10 05:10 +0100
    Re: [PATCH v2 00/14] perf tools: Move perf subcommand framework into  lib/tools Josh Poimboeuf <jpoimboe@redhat.com> - 2015-12-10 16:20 +0100

csiph-web