
On Fri, Feb 02, 2018 at 03:07:18PM +0000, Daniel P. Berrangé wrote:
On Fri, Feb 02, 2018 at 12:50:14PM -0200, Eduardo Habkost wrote:
(CCing qemu-devel)
On Fri, Feb 02, 2018 at 09:21:59AM -0500, Luiz Capitulino wrote:
On Fri, 2 Feb 2018 14:19:38 +0000 Daniel P. Berrangé <berrange@redhat.com> wrote:
On Fri, Feb 02, 2018 at 12:15:54PM -0200, Eduardo Habkost wrote: [...]
It would be also interesting to update QEMU QMP documentation to clarify the arch-specific semantics of "halted".
Any also especially clarify the awful performance implications of running this particular query command. In general I would not expect query-xxx monitor commands to interrupt all vcpus, so we should clearly warn about this !
Or deprecate it...
We could deprecate the expensive fields on query-cpus, and move them to a more expensive query-cpu-state command. I believe most users of query-cpus are only interested in qom_path, thread_id, and topology info.
Markus, Eric: from the QAPI point of view, is it OK to remove fields between QEMU versions, as long as we follow our deprecation policy?
I would expect that to not be OK. A fully backwards compatible way to deal with this would just be to add a flag to the query-cpus command eg something like
query-cpus arch-specific=false
to turn off all this arch specific state, and just report the cheap generic info. If it defaults to arch-specific=true when omitted, then there's no compat problems.
This would work, too. I would name it "full-state", "extended-state" or something similar, though. Not all arch-specific data is expensive to fetch, and not all non-arch-specific data is unexpensive. But I'd like to confirm if it's OK to make existing non-optional struct fields optional in the QAPI schema. Markus, Eric? -- Eduardo