qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [RFC][PATCH 00/10] trace-tcg: Allow tracing guest events in


From: Lluís Vilanova
Subject: [Qemu-devel] [RFC][PATCH 00/10] trace-tcg: Allow tracing guest events in TCG-generated code
Date: Thu, 08 Dec 2011 23:47:51 +0100
User-agent: StGit/0.15

Adds the basic ability to specify which events in the "trace-events" may be used
to trace guest activity in the TCG code.

Such events generate an extra set of tracing functions that can be called during
TCG code generation and will automatically redirect a call to the appropriate
backend-dependant tracing functions when the guest code is executed.

The extra routines and files generated by tracetool are:

* trace-tcg-helper.h

  Included on all "${target}/helper.h" headers.

  Declares a 'trace_${name}_proxy' TCG helper using the 'DEF_HELPER_*' macros
  for each TCG-aware event.

  Defines a 'gen_helper_trace_${name}' that ends up calling
  'gen_helper_trace_${name}_proxy'.

  In order to provide a more streamlined interface, this routine can take a mix
  of tracing-supported types and TCG types. In order to do this, it
  automatically casts the arguments and allocates them into the appropriate TCG
  types, calls 'gen_helper_trace_${name}_proxy' and frees the temporary TCG
  values it has allocated.

* trace-tcg-helper.c

  Defines a 'trace_${name}_proxy' TCG helper for each TCG-aware event. This
  helper will immediately call 'trace_${name}' with all the necessary argument
  type casts to match the signature of the callee.

NOTE: This patch series has been stripped out of all trace instrumentation
      features, and is thus applicable on top of QEMU 1.0

Signed-off-by: Lluís Vilanova <address@hidden>
---

Lluís Vilanova (10):
      trace: [doc] Document event properties on a separate section
      trace-tcg: Add documentation
      Trivial changes to eliminate auto-generated files
      [m68k,s390,xtensa] Move helpers.h to helper.h
      trace: [tracetool] Common functions to manage event arguments
      trace: [tracetool] Add 'get_api_name' to construct the name of tracing 
routines
      trace-tcg: [tracetool] Allow TCG types in trace event declarations
      trace-tcg: [tracetool] Declare TCG tracing helper routines
      trace-tcg: [tracetool] Define TCG tracing helper routines
      trace-tcg: [all] Include TCG-tracing helpers


 .gitignore                 |    2 
 Makefile                   |   11 +
 Makefile.objs              |   17 ++
 Makefile.target            |    2 
 def-helper.h               |    9 +
 docs/tracing.txt           |   62 +++++-
 scripts/simpletrace.py     |    2 
 scripts/tracetool          |  449 +++++++++++++++++++++++++++++++++++++++++---
 target-alpha/helper.h      |    2 
 target-arm/helper.h        |    2 
 target-cris/helper.h       |    2 
 target-i386/helper.h       |    2 
 target-lm32/helper.h       |    2 
 target-m68k/helper.c       |    2 
 target-m68k/helper.h       |   56 +++++
 target-m68k/helpers.h      |   54 -----
 target-m68k/op_helper.c    |    2 
 target-m68k/translate.c    |    6 -
 target-microblaze/helper.h |    2 
 target-mips/helper.h       |    2 
 target-ppc/helper.h        |    2 
 target-s390x/helper.h      |  154 +++++++++++++++
 target-s390x/helpers.h     |  152 ---------------
 target-s390x/op_helper.c   |    2 
 target-s390x/translate.c   |    4 
 target-sh4/helper.h        |    2 
 target-sparc/helper.h      |    2 
 target-unicore32/helper.h  |    2 
 target-xtensa/helper.h     |   34 +++
 target-xtensa/helpers.h    |   32 ---
 target-xtensa/op_helper.c  |    2 
 target-xtensa/translate.c  |    6 -
 xtensa-semi.c              |    2 
 33 files changed, 796 insertions(+), 288 deletions(-)
 create mode 100644 target-m68k/helper.h
 delete mode 100644 target-m68k/helpers.h
 create mode 100644 target-s390x/helper.h
 delete mode 100644 target-s390x/helpers.h
 create mode 100644 target-xtensa/helper.h
 delete mode 100644 target-xtensa/helpers.h




reply via email to

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