qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 00/11] simplify usage of tracepoints, and con


From: Denis V. Lunev
Subject: Re: [Qemu-devel] [PATCH v3 00/11] simplify usage of tracepoints, and connect them to logging
Date: Tue, 3 Nov 2015 20:42:46 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 11/03/2015 08:33 PM, Paolo Bonzini wrote:

On 03/11/2015 18:10, Stefan Hajnoczi wrote:
On Thu, Oct 29, 2015 at 11:44:06PM +0300, Denis V. Lunev wrote:
This series does three things:

1) add a "-trace [enable=]foo" option to enable one or more
trace events, and a "-trace help" option to show the list of
tracepoints (patches 4-5)

2) change the stderr tracing backend so that it prints to the -D
log file, and enable it by default.  "-trace file=..." is now a
synonym of -D if the log backend is enabled (patches 7-8)

3) add a "-d trace:foo" option that is a synonym for "-trace
foo"; this makes the new functionality more discoverable to
people used to "-d", makes it available for user-mode emulation
(which does not have -trace), and is somewhat nice if you want to
enable both tracepoints and some other "-d" flag (patch 9).  When
globbing it is also less susceptible to unwanted shell
expansion.

For example, you can trace block device I/O and save the result
to a file just by adding "-trace bdrv_aio_*,file=trace.txt", or
correlate it to guest PCs with "-d
exec,nochain,trace:bdrv_aio_*".

Opinions?  I would like to have this in 2.5 if there is
agreement.

Signed-off-by: Paolo Bonzini <address@hidden> Signed-off-by:
Denis V. Lunev <address@hidden>

Changes from v2: - compilation fix was extended to patch 2 and 3
- replaced Reviewed-by with Acked-by by request from Christian

Changes from v1: - small cleanup to vl.c is added as patch (4) -
compilation is fixed in patch (2) - moved qemu-log.c to
util/log.c to fix linking of qemu-io/qemu-nbd

Denis V. Lunev (2): trace: no need to call trace_backend_init in
different branches now log: move qemu-log.c into util/ directory

Paolo Bonzini (9): trace: fix documentation trace: split
trace_init_events out of trace_init_backends trace: split
trace_init_file out of trace_init_backends trace: add "-trace
enable=..." trace: add "-trace help" log: do not unnecessarily
include qom/cpu.h trace: convert stderr backend to log trace:
switch default backend to "log" log: add "-d trace:PATTERN"

Makefile.objs                                   |  1 -
bsd-user/main.c                                 |  1 + configure
|  6 +- cpu-exec.c                                      |  1 +
exec.c                                          |  1 +
hw/acpi/cpu_hotplug.c                           |  1 +
hw/timer/a9gtimer.c                             |  1 +
include/exec/log.h                              | 60
++++++++++++++++ include/qemu/log.h
| 60 +--------------- linux-user/main.c
|  1 + qemu-io.c                                       |  2 +-
qemu-options.hx                                 | 22 ++++--
qom/cpu.c                                       |  1 +
scripts/tracetool/backend/{stderr.py => log.py} |  9 +--
target-alpha/translate.c                        |  1 +
target-arm/translate.c                          |  1 +
target-cris/translate.c                         |  1 +
target-i386/seg_helper.c                        |  1 +
target-i386/smm_helper.c                        |  1 +
target-i386/translate.c                         |  1 +
target-lm32/helper.c                            |  1 +
target-lm32/translate.c                         |  1 +
target-m68k/translate.c                         |  1 +
target-microblaze/helper.c                      |  1 +
target-microblaze/translate.c                   |  1 +
target-mips/helper.c                            |  1 +
target-mips/translate.c                         |  1 +
target-moxie/translate.c                        |  1 +
target-openrisc/translate.c                     |  1 +
target-ppc/mmu-hash32.c                         |  1 +
target-ppc/mmu-hash64.c                         |  1 +
target-ppc/mmu_helper.c                         |  1 +
target-ppc/translate.c                          |  1 +
target-s390x/translate.c                        |  1 +
target-sh4/helper.c                             |  1 +
target-sh4/translate.c                          |  1 +
target-sparc/int32_helper.c                     |  1 +
target-sparc/int64_helper.c                     |  1 +
target-sparc/translate.c                        |  1 +
target-tilegx/translate.c                       |  1 +
target-tricore/translate.c                      |  1 +
target-unicore32/translate.c                    |  1 +
target-xtensa/translate.c                       |  1 + tcg/tcg.c
|  1 + trace/control.c                                 | 95
++++++++++++++++++------- trace/control.h
| 42 ++++++++++- trace/simple.c
|  6 +- trace/simple.h                                  |  4 +-
translate-all.c                                 |  1 +
util/Makefile.objs                              |  1 + qemu-log.c
=> util/log.c                        | 19 ++++- vl.c
| 38 +++++----- 52 files changed, 274 insertions(+), 129
deletions(-) create mode 100644 include/exec/log.h rename
scripts/tracetool/backend/{stderr.py => log.py} (78%) rename
qemu-log.c => util/log.c (90%)

-- 2.1.4


Thanks, applied to my tracing tree:
https://github.com/stefanha/qemu/commits/tracing
Thanks Denis and Stefan!  I hope this will make it simpler to track
user problems, and will also encourage people to use tracepoints more.

Paolo

There 2 small notes here:
- there is small patch with 'all' alias for all tracepoints which
  could also be useful in the scope of this work:
  [PATCH v2 1/1] allow to enable all tracepoints via alias all

- it would be great if patches from my log patchset will be merged.
  I'll port them tomorrow on top of this set (if will not work on
  findings in locking patchset)
  Switch from inline call to #define and QMP/QAPI logging seems
  really necessary. timestamp could be enabled or not but it is
  better to use unified approach for logging timestamps and
  tracing timestamps.

Den



reply via email to

[Prev in Thread] Current Thread [Next in Thread]