All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v5 0/5] hypertrace: Lightweight guest-to-QEMU trace channel
@ 2017-07-26 16:48 Lluís Vilanova
  2017-07-26 16:52 ` [Qemu-devel] [PATCH v5 1/5] hypertrace: Add documentation Lluís Vilanova
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Lluís Vilanova @ 2017-07-26 16:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Daniel P Berrange, Luiz Capitulino, Eric Blake, Stefan Hajnoczi

The hypertrace channel allows guest code to emit events in QEMU (the host) using
its tracing infrastructure (see "docs/trace.txt"). This works in both 'system'
and 'user' modes, is architecture-agnostic and introduces minimal noise on the
guest.

See first commit for a full description, use-cases and an example.

Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---

Changes in v5
=============

* Rebase on 5a477a7806.
* Fix typo in "bsd-user/main.c" [Stephan Hajnoczi].
* Replace abort() with exit() in command-line errors [Stephan Hajnoczi].
* Fix alignment of data and control channels [Stephan Hajnoczi].
* Fix signal reflection in user-mode (SIGINT, SIGABRT, SIGSEGV) [Stephan Hajnoczi].
* Clarify semantics of hypertrace_guest_mmap_check() [Stephan Hajnoczi].
* Use uintptr_t instead of unsigned long in SEGV handler [Stephan Hajnoczi].
* Emit hypertrace's event with host-endian arguments [Stephan Hajnoczi].
* Enable true concurrency between user-mode guest threads by using a spearate control channel page per client [Stephan Hajnoczi].
* Remove unused PAGE_SIZE define [Stephan Hajnoczi].
* Submit linux kernel API module separately to Linux upstream [Stephan Hajnoczi].
* Assume guest code events are always enabled.


Changes in v4
=============

* Fix typo in stap script example.
* Fix compilation instructions in doc/hypertrace.txt.
* Rebase on 0737f32daf.


Changes in v3
=============

* Rebase on 4a58f35.
* Remove debugging printf's.
* Fix style issues identified by checkpatch.
* Fix control channel mapping in guest linux module.
* Add a short event description in "trace-events".
* Polish documentation in 1st patch.


Changes in v2
=============

* Remove unnecessary casts for g2h() [Eric Blake].
* Use perror() [Eric Blake].
* Avoid expansions in application example [Eric Blake].
* Add copyright in document "hypertrace.txt" [Eric Blake].
* Make the user-mode hypertrace invocations thread-safe [Stefan Hajnoczi].
* Split dynamic hypertrace configuration into a separate "config" channel.

Lluís Vilanova (5):
      hypertrace: Add documentation
      hypertrace: Add tracing event "guest_hypertrace"
      hypertrace: [*-user] Add QEMU-side proxy to "guest_hypertrace" event
      hypertrace: [softmmu] Add QEMU-side proxy to "guest_hypertrace" event
      hypertrace: Add guest-side user-level library


 Makefile                           |   12 +
 Makefile.objs                      |    6 +
 bsd-user/main.c                    |   17 +
 bsd-user/mmap.c                    |   15 +
 bsd-user/syscall.c                 |   34 ++-
 configure                          |   36 +++
 docs/devel/tracing.txt             |    3 
 docs/hypertrace.txt                |  225 ++++++++++++++++++++
 hypertrace/Makefile.objs           |   23 ++
 hypertrace/common.c                |   55 +++++
 hypertrace/common.h                |   25 ++
 hypertrace/guest/Makefile          |   30 +++
 hypertrace/guest/common.c          |  301 ++++++++++++++++++++++++++
 hypertrace/guest/qemu-hypertrace.h |   80 +++++++
 hypertrace/softmmu.c               |  235 ++++++++++++++++++++
 hypertrace/user.c                  |  414 ++++++++++++++++++++++++++++++++++++
 hypertrace/user.h                  |   71 ++++++
 include/hw/pci/pci.h               |    2 
 include/qom/cpu.h                  |    4 
 linux-user/main.c                  |   19 ++
 linux-user/mmap.c                  |   16 +
 linux-user/qemu.h                  |    3 
 linux-user/signal.c                |   12 +
 linux-user/syscall.c               |   31 ++-
 trace-events                       |   11 +
 25 files changed, 1651 insertions(+), 29 deletions(-)
 create mode 100644 docs/hypertrace.txt
 create mode 100644 hypertrace/Makefile.objs
 create mode 100644 hypertrace/common.c
 create mode 100644 hypertrace/common.h
 create mode 100644 hypertrace/guest/Makefile
 create mode 100644 hypertrace/guest/common.c
 create mode 100644 hypertrace/guest/qemu-hypertrace.h
 create mode 100644 hypertrace/softmmu.c
 create mode 100644 hypertrace/user.c
 create mode 100644 hypertrace/user.h


To: qemu-devel@nongnu.org
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Luiz Capitulino <lcapitulino@redhat.com>
Cc: Daniel P Berrange <berrange@redhat.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-07-26 17:14 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-26 16:48 [Qemu-devel] [PATCH v5 0/5] hypertrace: Lightweight guest-to-QEMU trace channel Lluís Vilanova
2017-07-26 16:52 ` [Qemu-devel] [PATCH v5 1/5] hypertrace: Add documentation Lluís Vilanova
2017-07-26 16:56 ` [Qemu-devel] [PATCH v5 2/5] hypertrace: Add tracing event "guest_hypertrace" Lluís Vilanova
2017-07-26 17:00 ` [Qemu-devel] [PATCH v5 3/5] hypertrace: [*-user] Add QEMU-side proxy to "guest_hypertrace" event Lluís Vilanova
2017-07-26 17:04 ` [Qemu-devel] [PATCH v5 4/5] hypertrace: [softmmu] " Lluís Vilanova
2017-07-26 17:08 ` [Qemu-devel] [PATCH v5 5/5] hypertrace: Add guest-side user-level library Lluís Vilanova
2017-07-26 17:13 ` [Qemu-devel] [PATCH v5 0/5] hypertrace: Lightweight guest-to-QEMU trace channel no-reply
2017-07-26 17:13 ` no-reply

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.