Hi On Sat, Feb 14, 2026 at 1:13 PM BALATON Zoltan <[email protected]> wrote: > > On Sat, 14 Feb 2026, Marc-André Lureau wrote: > > On Fri, Feb 13, 2026 at 4:50 PM Mark Cave-Ayland > > <[email protected]> wrote: > >> > >> On 27/01/2026 18:25, [email protected] wrote: > >> > >>> From: Marc-André Lureau <[email protected]> > >>> > >>> Use more correct GTimer, specific for each backend, with a trace event. > >>> > >>> Signed-off-by: Marc-André Lureau <[email protected]> > >>> --- > >>> audio/audio_int.h | 1 + > >>> audio/audio-mixeng-be.c | 25 +++++++++---------------- > >>> audio/trace-events | 1 + > >>> 3 files changed, 11 insertions(+), 16 deletions(-) > >>> > >>> diff --git a/audio/audio_int.h b/audio/audio_int.h > >>> index dd5f2220d75..e0ed6af67ed 100644 > >>> --- a/audio/audio_int.h > >>> +++ b/audio/audio_int.h > >>> @@ -224,6 +224,7 @@ struct AudioMixengBackend { > >>> Audiodev *dev; > >>> > >>> QEMUTimer *ts; > >>> + GTimer *run_timer; > >>> QLIST_HEAD (hw_in_listhead, HWVoiceIn) hw_head_in; > >>> QLIST_HEAD (hw_out_listhead, HWVoiceOut) hw_head_out; > >>> QLIST_HEAD (cap_listhead, CaptureVoiceOut) cap_head; > >>> diff --git a/audio/audio-mixeng-be.c b/audio/audio-mixeng-be.c > >>> index 343f6ec181e..1b2c1fafa87 100644 > >>> --- a/audio/audio-mixeng-be.c > >>> +++ b/audio/audio-mixeng-be.c > >>> @@ -24,13 +24,13 @@ > >>> #include "system/replay.h" > >>> #include "system/runstate.h" > >>> #include "trace.h" > >>> +#include "trace/control.h" > >>> > >>> #define AUDIO_CAP "audio" > >>> #include "audio_int.h" > >>> > >>> /* #define DEBUG_OUT */ > >>> /* #define DEBUG_CAPTURE */ > >>> -/* #define DEBUG_POLL */ > >>> > >>> #define SW_NAME(sw) (sw)->name ? (sw)->name : "unknown" > >>> > >>> @@ -1269,22 +1269,12 @@ void audio_run(AudioMixengBackend *s, const char > >>> *msg) > >>> audio_run_in(s); > >>> audio_run_capture(s); > >>> > >>> -#ifdef DEBUG_POLL > >>> - { > >>> - static double prevtime; > >>> - double currtime; > >>> - struct timeval tv; > >>> - > >>> - if (gettimeofday (&tv, NULL)) { > >>> - perror ("audio_run: gettimeofday"); > >>> - return; > >>> - } > >>> - > >>> - currtime = tv.tv_sec + tv.tv_usec * 1e-6; > >>> - dolog ("Elapsed since last %s: %f\n", msg, currtime - prevtime); > >>> - prevtime = currtime; > >>> + if (trace_event_get_state(TRACE_AUDIO_RUN_POLL)) { > >>> + /* Convert seconds to microseconds for trace event */ > >>> + int64_t elapsed_us = g_timer_elapsed(s->run_timer, NULL) * > >>> 1000000; > >> > >> Not being familiar with g_timer_elapsed() I had a look at the glib docs, > >> and it seems that g_timer_elapsed() returns a gdouble as opposed to an > >> int64_t? > > > > yes, as seconds. So it is multiplied by 1000000 to get back usec, as before > > There's #define NANOSECONDS_PER_SECOND 1000000000LL in qemu/timer.h. Do we > need a MICROSECONDS_PER_SECOND constant there (or defined here) to make it > more obvious?
That shouldn't be controversial, added thanks -- Marc-André Lureau
