public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@infradead.org>
To: Borislav Petkov <bp@alien8.de>, Borislav Petkov <bp@amd64.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@elte.hu>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Lin Ming <ming.m.lin@intel.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] perf: Add persistent events
Date: Mon, 14 Jun 2010 22:02:01 -0300	[thread overview]
Message-ID: <20100615010201.GA27077@ghostprotocols.net> (raw)
In-Reply-To: <20100614212426.GA19915@liondog.tnic>

Em Mon, Jun 14, 2010 at 11:24:26PM +0200, Borislav Petkov escreveu:
> From: Arnaldo Carvalho de Melo <acme@infradead.org>
> > One thing I thought was that perhaps reusing Kbuild would be a good
> > idea, something like:
> > 
> > cd tools/
> > make menuconfig
> > 
> > And use all the Kbuild machinery to select needed features, etc.
> > 
> > What do you think?
> 
> Why not, however, do we need it at this point? I mean, you simply do
> 
> make -j; make install
> 
> in tools/perf/ and all is good. It even tells you if some libraries are
> missing. I simply don't see such a large amount of options to justify
> a configurator but maybe there are usecases where Kconfig would make
> sense, hmmm?

Yeah, I mean longer term, as we get libraries separated, more benchmarks,
tools, etc.
 
> > It can be a follow up to what you're doing, that is needed anyway, some
> > questions below:

> > >  tools/lib/util/util.h                              |  282 ++++++++++++++++++++
> > 
> > Will we continue using "util" here? What other name could we pick? Nah,
> > probably for the ones you moved we can continue using it, the symbols
> > part I plan to move to tools/lib/symbol/.
 
> Yeah, names are kinda arbitrary. Keeping "util" meant as little changes as
> possible but it would make more sense to simply have all different library
> modules under "tools/lib/<module>.(c|h)" Will do so in the next version.

Ok

> > >  tools/perf/builtin-bench.c                         |    2 +-
> > >  tools/perf/builtin.h                               |    4 +-
> > 
> > > -#include "types.h"
> > > +#include <util/types.h>
> > 
> > I thought about suggesting using -I to reduce patch size, but then it is
> > using "" :-\
> 
> Yeah, I have the -I$(CURDIR)/lib for this in the top level Makefile so all
> library includes would be like:
> 
> #include <util.h>
> 
> however, this does not differentiate perflib (let's call it that for how
> :) from libc headers. Do we want a "perf" or "kernel" or "perflib" or
> whatever prefix here - it might make sense later when this thing grows
> to differentiate between the namespaces...?

Agreed, but the last name this thing will have will be 'perf'something :-)

One of the goals at least I have with pursuing this path is to separate
out everything that is not strictly 'perf' into things that can be reused
by other tools, like yours.
 
> > So I'll do some testing here and merge this for .36 unless somebody has
> > other issues with this, Ingo? Frédéric?

> Can you please wait a bit with the merging, I'd like to write the
> whole rasd daemon stuff before we merge that and have the generic lib
> carve-out in one patchset?

Ok with me, I'll see if I manage to do the symbols part tho, as it is
kinda self contained and I already toyed with writing a test program
that uses the subset of tools/perf/util/ that deals with symbols.

Part of that experiment is in tools/perf/builtin-test.c, parts are
exemplified by this Makefile:

[acme@doppio linux-2.6-tip]$ cat tools/perf/util/examples/symbol/Makefile 
ppio linux-2.6-tip]$ l tools/perf/util/examples/symbol/Makefile 
-rw-rw-r-- 1 acme acme 693 2010-03-27 11:14 tools/perf/util/examples/symbol/Makefile
CFLAGS = -Wall -I../../include -I../.. -std=gnu99 -DNO_DEMANGLE -g
LDFLAGS = -lelf

ifeq ("$(origin O)", "command line")
	OUTPUT := $(O)/
endif

LIBSYM_OBJS = $(OUTPUT)map.o $(OUTPUT)rbtree.o $(OUTPUT)symbol.o $(OUTPUT)strlist.o $(OUTPUT)eprintf.o

all: $(OUTPUT)dsym $(OUTPUT)ksym

$(OUTPUT)dsym: $(OUTPUT)dsym.o $(LIBSYM_OBJS)
	gcc -o $@ $(LDFLAGS) $@.o $(LIBSYM_OBJS)

$(OUTPUT)ksym: $(OUTPUT)ksym.o $(LIBSYM_OBJS)
	gcc -o $@ $(LDFLAGS) $@.o $(LIBSYM_OBJS)

$(OUTPUT)rbtree.o: ../../../../../lib/rbtree.c
	gcc -o $@ -c $(CFLAGS) $<

$(OUTPUT)%.o: ../../%.c
	gcc -o $@ -c $(CFLAGS) $<

$(OUTPUT)%.o: %.c
	gcc -o $@ -c $(CFLAGS) $<

clean:
	rm -f $(LIBSYM_OBJS) $(OUTPUT)?sym.o $(OUTPUT)?sym
[acme@doppio linux-2.6-tip]$
[acme@doppio linux-2.6-tip]$ cd tools/perf/util/examples/symbol/
[acme@doppio symbol]$ l build/
total 104
drwxrwxr-x 2 acme acme  4096 2010-06-14 21:55 ./
drwxrwxr-x 3 acme acme  4096 2010-03-28 13:52 ../
-rwxrwxr-x 1 acme acme 47040 2010-06-14 21:55 dsym*
-rwxrwxr-x 1 acme acme 47200 2010-06-14 21:55 ksym*
[acme@doppio symbol]$ ldd build/dsym
	linux-vdso.so.1 =>  (0x00007fffe6cf2000)
	libelf.so.1 => /usr/lib64/libelf.so.1 (0x0000003404c00000)
	libc.so.6 => /lib64/libc.so.6 (0x0000003715a00000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003715600000)
[acme@doppio symbol]$
[acme@doppio symbol]$ build/dsym 
usage: dso DSO_NAME SYMBOL_NAME|0xADDR
[acme@doppio symbol]$ build/dsym /lib/libc-2.10.2.so malloc
malloc: 0x749c0-0x74bee
[acme@doppio symbol]$ build/dsym /lib/libc-2.10.2.so 0x749ee
__GI___libc_malloc: 0x749c0-0x74bee
[acme@doppio symbol]$ build/dsym /lib/libc-2.10.2.so __GI___libc_malloc
__GI___libc_malloc: 0x749c0-0x74bee

:-)

- Arnaldo

  reply	other threads:[~2010-06-15  1:02 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-22 19:00 [RFC PATCH 0/2] perf: persistent events prototype Borislav Petkov
2010-05-22 19:00 ` [PATCH 2/2] x86, mce: Make MCE tracepoint persistent event Borislav Petkov
     [not found] ` <1274554806-28216-2-git-send-email-bp@alien8.de>
2010-05-23 18:15   ` [PATCH 1/2] perf: Add persistent events Peter Zijlstra
2010-05-23 18:33     ` Borislav Petkov
2010-05-23 18:40       ` Peter Zijlstra
2010-05-23 18:54         ` Borislav Petkov
2010-05-23 19:23           ` Peter Zijlstra
2010-05-25  7:32             ` Borislav Petkov
2010-05-25 14:59               ` Peter Zijlstra
2010-05-28 14:33                 ` Ingo Molnar
2010-05-28 15:17                   ` Peter Zijlstra
2010-05-28 15:57                     ` Borislav Petkov
2010-05-28 18:07                       ` Peter Zijlstra
2010-06-03 13:43                         ` Borislav Petkov
2010-06-03 17:32                           ` Arnaldo Carvalho de Melo
2010-06-03 21:39                             ` Borislav Petkov
2010-06-14 19:25                             ` Borislav Petkov
2010-06-14 21:01                               ` Arnaldo Carvalho de Melo
2010-06-14 21:24                                 ` Borislav Petkov
2010-06-15  1:02                                   ` Arnaldo Carvalho de Melo [this message]
2010-06-15 10:22                                     ` Borislav Petkov
2010-06-15 13:22                                       ` Arnaldo Carvalho de Melo
2010-06-17 13:43                                     ` Borislav Petkov
2010-06-17 14:25                                       ` Arnaldo Carvalho de Melo
2010-06-17 15:27                                         ` Borislav Petkov
2010-06-17 16:19                                       ` Steven Rostedt
2010-06-17 17:31                                         ` Borislav Petkov
2010-05-23 20:36 ` [RFC PATCH 0/2] perf: persistent events prototype Steven Rostedt
  -- strict thread matches above, loose matches on Subject: below --
2010-05-22 19:04 Borislav Petkov
2010-05-22 19:04 ` [PATCH 1/2] perf: Add persistent events Borislav Petkov
2010-05-22 19:14   ` Borislav Petkov
2010-05-25  3:11   ` Steven Rostedt

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=20100615010201.GA27077@ghostprotocols.net \
    --to=acme@infradead.org \
    --cc=bp@alien8.de \
    --cc=bp@amd64.org \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ming.m.lin@intel.com \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    /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