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
next prev parent 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