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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.