On Tue, Sep 23, 2025 at 09:44:18AM +0200, Paolo Bonzini wrote: > The "ust" backend is complex (tracetool contains two output formats just > for that backend). It is not clear if if it has any users, and LTTng > anyway can use the uprobe tracepoints provided by the "dtrace" backend, > therefore deprecate "ust".
LTTng UST cannot trace all of QEMU's SDT probes because QEMU uses SDT semaphores. Semaphores appear to be unsupported by LTTng: https://bugs.lttng.org/issues/1180 Here is an example that won't work: static MemTxResult memory_region_read_accessor(MemoryRegion *mr, hwaddr addr, uint64_t *value, unsigned size, signed shift, uint64_t mask, MemTxAttrs attrs) { uint64_t tmp; tmp = mr->ops->read(mr->opaque, addr, size); if (mr->subpage) { trace_memory_region_subpage_read(get_cpu_index(), mr, addr, tmp, size); } else if (trace_event_get_state_backends(TRACE_MEMORY_REGION_OPS_READ)) { ^^^ semaphore ^^^ hwaddr abs_addr = memory_region_to_absolute_addr(mr, addr); trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, size, memory_region_name(mr)); } However, I don't remember hearing from LTTng UST users all these years, so I think it's okay to deprecate this tracing backend. Please update the commit description to mention that trace events that use SDT semaphores do not work with LTTng UST. Thanks, Stefan > > Signed-off-by: Paolo Bonzini <[email protected]> > --- > docs/about/deprecated.rst | 9 +++++++++ > meson.build | 4 ++++ > 2 files changed, 13 insertions(+) > > diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst > index aa300bbd507..57250f9d47f 100644 > --- a/docs/about/deprecated.rst > +++ b/docs/about/deprecated.rst > @@ -533,3 +533,12 @@ command documentation for details on the ``fdset`` usage. > > The ``zero-blocks`` capability was part of the block migration which > doesn't exist anymore since it was removed in QEMU v9.1. > + > +Host features > +------------- > + > +``ust`` tracing backend > +----------------------- > + > +LTTng can use uprobe tracepoints, therefore it is recommended to use > +the ``dtrace`` backend instead. > diff --git a/meson.build b/meson.build > index 72da97829ab..b5e2186b35e 100644 > --- a/meson.build > +++ b/meson.build > @@ -5073,3 +5073,7 @@ if not actually_reloc and (host_os == 'windows' or > get_option('relocatable')) > message('QEMU will have to be installed under ' + get_option('prefix') + > '.') > message('Use --disable-relocatable to remove this warning.') > endif > + > +if 'ust' in get_option('trace_backends') > + warning('ust trace backend is deprecated, use dtrace backend for uprobe > support') > +endif > -- > 2.51.0 >
signature.asc
Description: PGP signature
