qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 09/17] target: Simplify how the TARGET_cpu_list() print
Date: Tue, 16 Apr 2019 09:20:45 +0100	[thread overview]
Message-ID: <20190416082044.GA2788@work-vm> (raw)
In-Reply-To: <871s228ojv.fsf@dusky.pond.sub.org>

* Markus Armbruster (armbru@redhat.com) wrote:
> "Dr. David Alan Gilbert" <dgilbert@redhat.com> writes:
> 
> > * Markus Armbruster (armbru@redhat.com) wrote:
> >> The various TARGET_cpu_list() take an fprintf()-like callback and a
> >> FILE * to pass to it.  Their callers (vl.c's main() via list_cpus(),
> >> bsd-user/main.c's main(), linux-user/main.c's main()) all pass
> >> fprintf() and stdout.  Thus, the flexibility provided by the (rather
> >> tiresome) indirection isn't actually used.
> >> 
> >> Drop the callback, and call qemu_fprintf() instead.
> >
> > Actually calling qemu_printf
> 
> Typo, will fix.  Thanks!
> 
> >> Calling printf() would also work, but would make the code unsuitable
> >> for monitor context without making it simpler.
> >
> > Gernally OK; but just checking - are there any flag combos that will
> > mean this ends up with the result going down a monitor rather than
> > stdout, and will that upset something like libvirt that might be using
> > this to enumerate a cpu list?
> 
> No.
> 
> qemu_printf() prints to current monitor if we have one, else to stdout.
> Thus, it prints to stdout as long as !cur_mon.
> 
> cur_mon is thread-local, and always set like this:
> 
>     Monitor *old_mon = cur_mon;
>     cur_mon = ... non-null value ...
>     ... do something ...
>     cur-mon = old_mon;
> 
> It's set and restored
> 
> * in monitor_qmp_dispatch() around executing a QMP command
> 
> * in monitor_read() around handling HMP input (this includes executing
>   a command)
> 
> * in qmp_human_monitor_command() around executing the HMP command (this
>   is where monitors become nested)
> 
> Therefore, cur_mon is null unless we're executing a QMP command, an HMP
> command, or are processing HMP input.
> 
> Clearer now?

Yes, thanks!

Dave

--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

  parent reply	other threads:[~2019-04-16  8:20 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-11 15:25 [Qemu-devel] [PATCH 00/17] Clean up and simplify around fprintf_function Markus Armbruster
2019-04-11 15:25 ` Markus Armbruster
2019-04-11 15:25 ` [Qemu-devel] [PATCH 01/17] include: Include fprintf-fn.h only where needed Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 16:53   ` Dr. David Alan Gilbert
2019-04-12 16:53     ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 02/17] trace: Simplify how st_print_trace_file_status() prints Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 16:55   ` Dr. David Alan Gilbert
2019-04-12 16:55     ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 03/17] tcg: Simplify how dump_opcount_info() prints Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 16:58   ` Dr. David Alan Gilbert
2019-04-12 16:58     ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 04/17] tcg: Simplify how dump_exec_info() prints Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 17:09   ` Dr. David Alan Gilbert
2019-04-12 17:09     ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 05/17] tcg: Simplify how dump_drift_info() prints Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 17:18   ` Dr. David Alan Gilbert
2019-04-12 17:18     ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 06/17] qsp: Simplify how qsp_report() prints Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 17:25   ` Dr. David Alan Gilbert
2019-04-12 17:25     ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 07/17] block/qapi: Clean up how we print to monitor or stdout Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 17:59   ` Dr. David Alan Gilbert
2019-04-12 17:59     ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 08/17] memory: Clean up how mtree_info() prints Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 17:44   ` Dr. David Alan Gilbert
2019-04-12 17:44     ` Dr. David Alan Gilbert
2019-04-12 18:25     ` Markus Armbruster
2019-04-12 18:25       ` Markus Armbruster
2019-04-11 15:25 ` [Qemu-devel] [PATCH 09/17] target: Simplify how the TARGET_cpu_list() print Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-15 15:43   ` Dr. David Alan Gilbert
2019-04-15 15:43     ` Dr. David Alan Gilbert
2019-04-16  6:14     ` Markus Armbruster
2019-04-16  6:14       ` Markus Armbruster
2019-04-16  8:20       ` Dr. David Alan Gilbert [this message]
2019-04-16  8:20         ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 10/17] target: Clean up how the dump_mmu() print Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-15 15:53   ` Dr. David Alan Gilbert
2019-04-15 15:53     ` Dr. David Alan Gilbert
2019-04-16  6:23     ` Markus Armbruster
2019-04-16  6:23       ` Markus Armbruster
2019-04-11 15:25 ` [Qemu-devel] [PATCH 11/17] target/i386: Simplify how x86_cpu_dump_local_apic_state() prints Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 17:49   ` Dr. David Alan Gilbert
2019-04-12 17:49     ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 12/17] qom/cpu: Simplify how CPUClass::dump_statistics() prints Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 17:50   ` Dr. David Alan Gilbert
2019-04-12 17:50     ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 13/17] qemu-print: New qemu_fprintf(), qemu_vfprintf() Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 17:53   ` Dr. David Alan Gilbert
2019-04-12 17:53     ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 14/17] qom/cpu: Simplify how CPUClass:cpu_dump_state() prints Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-15 16:47   ` Dr. David Alan Gilbert
2019-04-15 16:47     ` Dr. David Alan Gilbert
2019-04-16  6:32     ` Markus Armbruster
2019-04-16  6:32       ` Markus Armbruster
2019-04-11 15:25 ` [Qemu-devel] [PATCH 15/17] monitor: Clean up how monitor_disas() funnels output to monitor Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 18:01   ` Dr. David Alan Gilbert
2019-04-12 18:01     ` Dr. David Alan Gilbert
2019-04-11 15:25 ` [Qemu-devel] [PATCH 16/17] disas: Rename include/disas/bfd.h back to include/disas/dis-asm.h Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-11 15:25 ` [Qemu-devel] [PATCH 17/17] include: Move fprintf_function to disas/ Markus Armbruster
2019-04-11 15:25   ` Markus Armbruster
2019-04-12 18:39   ` Dr. David Alan Gilbert
2019-04-12 18:39     ` Dr. David Alan Gilbert
2019-04-13  4:59     ` Markus Armbruster
2019-04-13  4:59       ` Markus Armbruster
2019-04-11 15:49 ` [Qemu-devel] [PATCH 00/17] Clean up and simplify around fprintf_function no-reply
2019-04-11 15:49   ` no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190416082044.GA2788@work-vm \
    --to=dgilbert@redhat.com \
    --cc=armbru@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).