[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC] tracing: per-CPU tracing state
From: |
Lluís |
Subject: |
[Qemu-devel] [RFC] tracing: per-CPU tracing state |
Date: |
Mon, 08 Nov 2010 15:35:19 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
As more and more tracing backends appear (right now: nop, simple, ust
and the new dtrace), it is harder to provide a tracetool where these
backends can be efficiently used without being aware of per-CPU tracing
state.
What I have now is basically:
* trace.h : trace_##name
Backend-specific declaration/definition of per-event tracing functions
* trace-cpu.h : trace_cpu_##name
Generic "static inline" definitions of functions that check the
per-CPU state and (if true) call the corresponding trace_##name
* trace-gen.h: trace_gen_##name
Generic "static inline" definitions of functions that check the
per-CPU state and (if true) generate TCG calls to a function
redirecting the call to trace_##name
The last two are only generated for those events that have the "gen"
keyword in "trace-events".
The point is that the trace_##name functions do an extra check (the one
provided by the backend) that should not be necessary, as the per-CPU
state check already ensures that the trace must be produced.
Thus, I'd propose to provide an extra per-backend function that prodices
the trace without checking the tracing state.
Another important change would be to provide a generic interface inside
QEMU that provides a programmatic control of the tracing state of all
events (both per-cpu and global), and let each backend provide a small
.c file implementing that functionality. This would provide a
centralized point through QEMU monitor for the control of tracing
events, plus any backend-specific control interface that might also be
available.
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
- [Qemu-devel] [RFC] tracing: per-CPU tracing state,
Lluís <=