From 3fa1ae00681ca17fb709dcf1e281b8ee0ede0d5f Mon Sep 17 00:00:00 2001 From: Carlos Santos Date: Wed, 12 Jul 2023 19:01:19 -0300 Subject: [PATCH] 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 Signed-off-by: Thomas Petazzoni --- ...-trace-events-file-only-if-necessary.patch | 30 +++++++++++++++++++ package/qemu/Config.in | 9 ++++++ package/qemu/qemu.mk | 6 ++++ 3 files changed, 45 insertions(+) create mode 100644 package/qemu/0004-tracing-install-trace-events-file-only-if-necessary.patch diff --git a/package/qemu/0004-tracing-install-trace-events-file-only-if-necessary.patch b/package/qemu/0004-tracing-install-trace-events-file-only-if-necessary.patch new file mode 100644 index 0000000000..36bdaa4978 --- /dev/null +++ b/package/qemu/0004-tracing-install-trace-events-file-only-if-necessary.patch @@ -0,0 +1,30 @@ +From 5c43da1e4983cc3c209b325a5228b6149e0a0ccf Mon Sep 17 00:00:00 2001 +From: Carlos Santos +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 +Signed-off-by: Carlos Santos +--- + 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 + diff --git a/package/qemu/Config.in b/package/qemu/Config.in index 6fb34a0dae..8d53ced300 100644 --- a/package/qemu/Config.in +++ b/package/qemu/Config.in @@ -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" diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk index 4d2135a3c6..87ecad5b52 100644 --- a/package/qemu/qemu.mk +++ b/package/qemu/qemu.mk @@ -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