On Sun, Aug 16, 2026 at 11:13:01PM +0400, Marc-André Lureau wrote:
> Note that this fixes qemu_vprintf() (and thus qemu_printf) to do as said
> in the code comment: print to current HMP if we have one, else to
> stdout, instead of trying to print to the current monitor (which may not
> actually have hmp-only print capability/callback and fail silently).

The question is whether that commented behaviour is actually
what we want ? AFAICT, the comment has been wrong since day
one - it always printed to HMP, and /dev/nulled for QMP,
and stdout thus only in non-monitor context.

I'm not convinced that qemu_printf family should do anything
in QMP context - /dev/null feels like the right behaviour.

We have warn_report/error_report which go to stderr in QMP
context which is right.  I don't see a use case for
qemu_printf to stderr in QMP context.

> 
> Signed-off-by: Marc-André Lureau <[email protected]>
> ---
>  util/qemu-print.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/util/qemu-print.c b/util/qemu-print.c
> index a2d1f0244168..0eecc05b0330 100644
> --- a/util/qemu-print.c
> +++ b/util/qemu-print.c
> @@ -21,9 +21,9 @@
>   */
>  int qemu_vprintf(const char *fmt, va_list ap)
>  {
> -    Monitor *cur_mon = monitor_cur();
> -    if (cur_mon) {
> -        return monitor_vprintf(cur_mon, fmt, ap);
> +    MonitorHMP *hmp = monitor_cur_hmp();
> +    if (hmp) {
> +        return monitor_vprintf(MONITOR(hmp), fmt, ap);
>      }
>      return vprintf(fmt, ap);
>  }
> @@ -53,7 +53,8 @@ int qemu_printf(const char *fmt, ...)
>  int qemu_vfprintf(FILE *stream, const char *fmt, va_list ap)
>  {
>      if (!stream) {
> -        return monitor_vprintf(monitor_cur(), fmt, ap);
> +        MonitorHMP *hmp = monitor_cur_hmp();
> +        return hmp ? monitor_vprintf(MONITOR(hmp), fmt, ap) : -1;
>      }
>      return vfprintf(stream, fmt, ap);
>  }
> 
> -- 
> 2.55.0.543.g5ebe2ebe4ea8
> 

With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|


Reply via email to