[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 ] trace: Multi-backend tracing
From: |
Lluís Vilanova |
Subject: |
Re: [Qemu-devel] [PATCH v4 ] trace: Multi-backend tracing |
Date: |
Tue, 27 May 2014 15:01:13 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
Stefan Hajnoczi writes:
> On Tue, May 13, 2014 at 08:04:13PM +0200, Lluís Vilanova wrote:
>> Adds support to compile QEMU with multiple tracing backends at the same time.
>>
>> For example, you can compile QEMU with:
>>
>> $ ./configure --enable-trace-backends=ftrace,dtrace
>>
>> Where 'ftrace' can be handy for having an in-flight record of events, and
>> 'dtrace' can be later used to extract more information from the system.
>>
>> This patch allows having both available without recompiling QEMU.
>>
>> Signed-off-by: Lluís Vilanova <address@hidden>
>> ---
>> .travis.yml | 8 +++--
>> Makefile | 4 +--
>> Makefile.target | 4 +--
>> configure | 44 +++++++++++++-----------------
>> docs/tracing.txt | 4 +--
>> qemu-io.c | 2 +
>> scripts/tracetool.py | 41 ++++++++++++++--------------
>> scripts/tracetool/__init__.py | 24 +++++++---------
>> scripts/tracetool/backend/__init__.py | 15 +++++-----
>> trace/Makefile.objs | 22 +++++++--------
>> trace/control-internal.h | 4 +--
>> trace/control.c | 49
>> ++++++++++++++++++++++++++++++++-
>> trace/control.h | 27 +++---------------
>> trace/default.c | 40 ---------------------------
>> trace/ftrace.c | 25 +----------------
>> trace/ftrace.h | 5 +++
>> trace/simple.c | 19 +------------
>> trace/simple.h | 1 +
>> trace/stderr.c | 30 --------------------
>> vl.c | 4 +--
>> 20 files changed, 144 insertions(+), 228 deletions(-)
>> delete mode 100644 trace/default.c
>> delete mode 100644 trace/stderr.c
> This doesn't seem to work 100% yet:
> $ ./configure --target-list=x86_64-softmmu
> --enable-trace-backends=dtrace,simple && make
> ...
> lt LINK vscclient
> ./.libs/libcacard.so: undefined reference to
> `_simple_trace_qemu_anon_ram_alloc'
> ./.libs/libcacard.so: undefined reference to
> `_simple_trace_qemu_anon_ram_free'
> ./.libs/libcacard.so: undefined reference to `_simple_trace_qemu_vfree'
> ./.libs/libcacard.so: undefined reference to
> `_simple_trace_qemu_memalign'
Silly mistake, I didn't try building with dtrace.
> I also noticed that ./configure invokes tracetool.py with the old
> --enable-trace-backend option after applying the patch. The build
> succeeds but the tracetool.py usage is printed.
> This is because ./configure stores the command-line in config.status and
> reruns itself if config-host.mak needs to be rebuilt. It's using the
> old ./configure command-line that was stashed in config.status.
> The good news is this shouldn't affect buildbot but it will probably
> surprise all the developers who git pull qemu.git and then see an error
> message from ./configure.
> Since you are respinning, please consider a fix for this. Perhaps we
> can accept the old command-line argument but not document it.
Done.
>> @@ -65,16 +65,17 @@ def main(args):
>> global _SCRIPT
>> _SCRIPT = args[0]
>>
>> - long_opts = [ "backend=", "format=", "help", "list-backends",
>> "check-backend" ]
>> - long_opts += [ "binary=", "target-type=", "target-name=",
>> "probe-prefix=" ]
>> + long_opts = ["backends=", "format=", "help", "list-backends",
>> + "check-backends"]
>> + long_opts += ["binary=", "target-type=", "target-name=",
>> "probe-prefix="]
> Missing tracetool.py help output s/--check-backend/--check-backends/.
Done.
I'll send v5 now.
Thanks,
Lluis
--
"And it's much the same thing with knowledge, for whenever you learn
something new, the whole world becomes that much richer."
-- The Princess of Pure Reason, as told by Norton Juster in The Phantom
Tollbooth