[PATCH v2] tracing: deprecate "ust" tracing backend

Paolo Bonzini posted 1 patch 5 days, 7 hours ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250923074418.87716-1-pbonzini@redhat.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>
docs/about/deprecated.rst | 9 +++++++++
meson.build               | 4 ++++
2 files changed, 13 insertions(+)
[PATCH v2] tracing: deprecate "ust" tracing backend
Posted by Paolo Bonzini 5 days, 7 hours ago
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".

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 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
Re: [PATCH v2] tracing: deprecate "ust" tracing backend
Posted by Stefan Hajnoczi 4 days, 20 hours ago
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 <pbonzini@redhat.com>
> ---
>  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
> 
Re: [PATCH v2] tracing: deprecate "ust" tracing backend
Posted by Alex Bennée 5 days, 3 hours ago
Paolo Bonzini <pbonzini@redhat.com> writes:

> 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".
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
Re: [PATCH v2] tracing: deprecate "ust" tracing backend
Posted by Daniel P. Berrangé 5 days, 6 hours ago
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".
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  docs/about/deprecated.rst | 9 +++++++++
>  meson.build               | 4 ++++
>  2 files changed, 13 insertions(+)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|