package/qemu: add option to enable tracing

Tracing is a development feature for debugging, profiling, and observing
QEMU execution. It does not make sense to enable it by default, so add a
config to enable the "log" tracing backend (the default one). Options to
select other backends may be added in the future.

Also pull a patch already reviewed upstream to install the trace events
file only if necessary:

    https://patchwork.kernel.org/project/qemu-devel/patch/20230408010410.281263-1-casantos@redhat.com/

Signed-off-by: Carlos Santos <unixmania@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Carlos Santos 2023-07-12 19:01:19 -03:00 committed by Thomas Petazzoni
parent d8e9505922
commit 3fa1ae0068
3 changed files with 45 additions and 0 deletions

View File

@ -0,0 +1,30 @@
From 5c43da1e4983cc3c209b325a5228b6149e0a0ccf Mon Sep 17 00:00:00 2001
From: Carlos Santos <casantos@redhat.com>
Date: Fri, 24 Mar 2023 21:40:22 -0300
Subject: [PATCH] tracing: install trace events file only if necessary
It is not useful when configuring with --enable-trace-backends=nop.
Upstream: https://patchwork.kernel.org/project/qemu-devel/patch/20230408010410.281263-1-casantos@redhat.com/
Signed-off-by: Carlos Santos <casantos@redhat.com>
Signed-off-by: Carlos Santos <unixmania@gmail.com>
---
trace/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/trace/meson.build b/trace/meson.build
index 8e80be895c..30b1d942eb 100644
--- a/trace/meson.build
+++ b/trace/meson.build
@@ -64,7 +64,7 @@ trace_events_all = custom_target('trace-events-all',
input: trace_events_files,
command: [ 'cat', '@INPUT@' ],
capture: true,
- install: true,
+ install: get_option('trace_backends') != [ 'nop' ],
install_dir: qemu_datadir)
if 'ust' in get_option('trace_backends')
--
2.31.1

View File

@ -106,6 +106,15 @@ config BR2_PACKAGE_QEMU_FDT
Say 'y' here to have QEMU capable of constructing Device Say 'y' here to have QEMU capable of constructing Device
Trees, and passing them to the VMs. Trees, and passing them to the VMs.
config BR2_PACKAGE_QEMU_TRACING
bool "Enable tracing"
help
Say 'y' to enable the "log" tracing infrastructure in QEMU,
used for debugging, profiling, and observing execution. For
detailed documentation, see
https://www.qemu.org/docs/master/devel/tracing.html
endif # BR2_PACKAGE_QEMU_SYSTEM endif # BR2_PACKAGE_QEMU_SYSTEM
comment "systems emulation needs a toolchain w/ dynamic library" comment "systems emulation needs a toolchain w/ dynamic library"

View File

@ -160,6 +160,12 @@ else
QEMU_OPTS += --disable-fdt QEMU_OPTS += --disable-fdt
endif endif
ifeq ($(BR2_PACKAGE_QEMU_TRACING),y)
QEMU_OPTS += --enable-trace-backends=log
else
QEMU_OPTS += --enable-trace-backends=nop
endif
ifeq ($(BR2_PACKAGE_QEMU_TOOLS),y) ifeq ($(BR2_PACKAGE_QEMU_TOOLS),y)
QEMU_OPTS += --enable-tools QEMU_OPTS += --enable-tools
else else