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
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
comment "systems emulation needs a toolchain w/ dynamic library"

View File

@ -160,6 +160,12 @@ else
QEMU_OPTS += --disable-fdt
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)
QEMU_OPTS += --enable-tools
else