On Fri, Aug 05, 2016 at 06:59:23PM +0200, Lluís Vilanova wrote: > 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. That is, hypertrace is to tracing, what hypercalls are to > system calls. > > You can use this to emit an event on both guest and QEMU (host) traces to easily > synchronize or correlate them. You could also modify you guest's tracing system > to emit all events through the hypertrace channel, providing a unified and fully > synchronized trace log. Another use case is timing the performance of guest code > when optimizing TCG (QEMU traces have a timestamp). > > See first commit for a full description. > > Signed-off-by: Lluís Vilanova > --- CCing Steven Rostedt, Masami Hiramatsu, Luiz Capitulino, and LTTng folks who have all looked into host/guest tracing solutions. Here is a mailing list archive link to this email thread: https://lists.gnu.org/archive/html/qemu-devel/2016-08/msg01081.html > > Lluís Vilanova (6): > 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 > hypertrace: Add guest-side Linux module > > > Makefile | 8 - > Makefile.objs | 6 > bsd-user/main.c | 16 + > bsd-user/mmap.c | 2 > bsd-user/syscall.c | 4 > configure | 42 +++ > docs/hypertrace.txt | 141 ++++++++++ > docs/tracing.txt | 3 > hypertrace/Makefile.objs | 20 + > hypertrace/guest/linux-module/Kbuild.in | 5 > hypertrace/guest/linux-module/Makefile | 24 ++ > .../include/linux/qemu-hypertrace-internal.h | 46 +++ > .../linux-module/include/linux/qemu-hypertrace.h | 71 +++++ > hypertrace/guest/linux-module/qemu-hypertrace.c | 133 +++++++++ > hypertrace/guest/user/Makefile | 28 ++ > hypertrace/guest/user/common.c | 221 +++++++++++++++ > hypertrace/guest/user/qemu-hypertrace.h | 77 +++++ > hypertrace/softmmu.c | 243 +++++++++++++++++ > hypertrace/user.c | 292 ++++++++++++++++++++ > hypertrace/user.h | 52 ++++ > include/hw/pci/pci.h | 2 > linux-user/main.c | 19 + > linux-user/mmap.c | 2 > linux-user/syscall.c | 3 > trace/Makefile.objs | 2 > 25 files changed, 1460 insertions(+), 2 deletions(-) > create mode 100644 docs/hypertrace.txt > create mode 100644 hypertrace/Makefile.objs > create mode 100644 hypertrace/guest/linux-module/Kbuild.in > create mode 100644 hypertrace/guest/linux-module/Makefile > create mode 100644 hypertrace/guest/linux-module/include/linux/qemu-hypertrace-internal.h > create mode 100644 hypertrace/guest/linux-module/include/linux/qemu-hypertrace.h > create mode 100644 hypertrace/guest/linux-module/qemu-hypertrace.c > create mode 100644 hypertrace/guest/user/Makefile > create mode 100644 hypertrace/guest/user/common.c > create mode 100644 hypertrace/guest/user/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 >