[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 0/5] hypertrace: Lightweight guest-to-QEMU trace
From: |
Lluís Vilanova |
Subject: |
[Qemu-devel] [PATCH v5 0/5] hypertrace: Lightweight guest-to-QEMU trace channel |
Date: |
Wed, 26 Jul 2017 19:48:25 +0300 |
User-agent: |
StGit/0.17.1-dirty |
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 <address@hidden>
---
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: address@hidden
Cc: Stefan Hajnoczi <address@hidden>
Cc: Eric Blake <address@hidden>
Cc: Luiz Capitulino <address@hidden>
Cc: Daniel P Berrange <address@hidden>
- [Qemu-devel] [PATCH v5 0/5] hypertrace: Lightweight guest-to-QEMU trace channel,
Lluís Vilanova <=
- [Qemu-devel] [PATCH v5 1/5] hypertrace: Add documentation, Lluís Vilanova, 2017/07/26
- [Qemu-devel] [PATCH v5 2/5] hypertrace: Add tracing event "guest_hypertrace", Lluís Vilanova, 2017/07/26
- [Qemu-devel] [PATCH v5 3/5] hypertrace: [*-user] Add QEMU-side proxy to "guest_hypertrace" event, Lluís Vilanova, 2017/07/26
- [Qemu-devel] [PATCH v5 4/5] hypertrace: [softmmu] Add QEMU-side proxy to "guest_hypertrace" event, Lluís Vilanova, 2017/07/26
- [Qemu-devel] [PATCH v5 5/5] hypertrace: Add guest-side user-level library, Lluís Vilanova, 2017/07/26
- Re: [Qemu-devel] [PATCH v5 0/5] hypertrace: Lightweight guest-to-QEMU trace channel, no-reply, 2017/07/26
- Re: [Qemu-devel] [PATCH v5 0/5] hypertrace: Lightweight guest-to-QEMU trace channel, no-reply, 2017/07/26