On 17/01/18 10:30, David Gibson wrote: > On Wed, Jan 17, 2018 at 10:26:28AM +1100, Alexey Kardashevskiy wrote: >> On 17/01/18 09:34, David Gibson wrote: >>> On Tue, Jan 16, 2018 at 03:46:20PM +0100, Andrea Bolognani wrote: >>>> On Wed, 2018-01-17 at 00:54 +1100, David Gibson wrote: >>>>>> Correct me if I'm wrong, but it seems to me like there's no way >>>>>> to figure out through QMP whether these new machine options can be >>>>>> used for a given QEMU binary. >>>>> >>>>> Uh, I don't think so. These are machine options like any other (just >>>>> constructed a bit differently). So they'll appear in qemu -machine >>>>> pseries,? and I believe that info can also be retrieved with QMP. >>>> >>>> Yes, they will indeed show up in the output of -machine pseries,? >>>> but there's AFAICT no way to retrieve them via QMP. >>> >>> Really!? I thought introspecting object properties was QMP's bread >>> and butter. >> >> >> On a guest started with '-S': >> {"execute": "qom-list", "arguments": {"path": "/machine"}} >> >> returns: >> { 'return': [ {'name': 'graphics', 'type': 'bool'}, >> {'name': 'phandle-start', 'type': 'int'}, >> {'name': 'dump-guest-core', 'type': 'bool'}, >> {'name': 'kernel-irqchip', 'type': 'OnOffSplit'}, >> {'name': 'accel', 'type': 'string'}, >> {'name': 'append', 'type': 'string'}, >> {'name': 'dumpdtb', 'type': 'string'}, >> {'name': 'igd-passthru', 'type': 'bool'}, >> {'name': 'dt-compatible', 'type': 'string'}, >> {'name': 'kernel', 'type': 'string'}, >> {'name': 'usb', 'type': 'bool'}, >> {'name': 'suppress-vmdesc', 'type': 'bool'}, >> {'name': 'dtb', 'type': 'string'}, >> {'name': 'firmware', 'type': 'string'}, >> {'name': 'mem-merge', 'type': 'bool'}, >> {'name': 'initrd', 'type': 'string'}, >> {'name': 'enforce-config-section', 'type': 'bool'}, >> {'name': 'kvm-shadow-mem', 'type': 'int'}, >> {'name': 'cap-dfp', 'type': 'bool'}, >> {'name': 'cap-htm', 'type': 'bool'}, >> {'name': 'cap-vsx', 'type': 'bool'}, > ^^^^^^^ > Here are the cap properties. Is it just Suraj's new tristate ones > that aren't showing up? If so that's weird... are you sure you built > with those patches included?
I am sure I do not have them, my point was that QMP has it all if they are present in qemu :) Here is rerun: {"execute": "qom-list", "arguments": {"path": "/machine"}} { 'return': [ {'name': 'graphics', 'type': 'bool'}, {'name': 'phandle-start', 'type': 'int'}, {'name': 'dump-guest-core', 'type': 'bool'}, {'name': 'kernel-irqchip', 'type': 'OnOffSplit'}, {'name': 'accel', 'type': 'string'}, {'name': 'append', 'type': 'string'}, {'name': 'dumpdtb', 'type': 'string'}, {'name': 'igd-passthru', 'type': 'bool'}, {'name': 'dt-compatible', 'type': 'string'}, {'name': 'kernel', 'type': 'string'}, {'name': 'usb', 'type': 'bool'}, {'name': 'suppress-vmdesc', 'type': 'bool'}, {'name': 'dtb', 'type': 'string'}, {'name': 'firmware', 'type': 'string'}, {'name': 'mem-merge', 'type': 'bool'}, {'name': 'initrd', 'type': 'string'}, {'name': 'enforce-config-section', 'type': 'bool'}, {'name': 'kvm-shadow-mem', 'type': 'int'}, {'name': 'cap-ibs', 'type': 'string'}, {'name': 'cap-cfpc', 'type': 'string'}, {'name': 'cap-sbbc', 'type': 'string'}, {'name': 'cap-dfp', 'type': 'bool'}, {'name': 'cap-htm', 'type': 'bool'}, {'name': 'cap-vsx', 'type': 'bool'}, {'name': 'kvm-type', 'type': 'string'}, {'name': 'max-cpu-compat', 'type': 'string'}, { 'name': 'dr-connector[268435480]', 'type': 'child<spapr-drc-cpu>'}, {'name': 'peripheral', 'type': 'child<container>'}, { 'name': 'dr-connector[268435472]', 'type': 'child<spapr-drc-cpu>'}, {'name': 'modern-hotplug-events', 'type': 'bool'}, { 'name': 'dr-connector[268435464]', 'type': 'child<spapr-drc-cpu>'}, { 'name': 'dr-connector[268435456]', 'type': 'child<spapr-drc-cpu>'}, {'name': 'peripheral-anon', 'type': 'child<container>'}, {'name': 'ics', 'type': 'child<icskvm>'}, {'name': 'vsmt', 'type': 'uint32'}, {'name': 'type', 'type': 'string'}, {'name': 'rtc-time', 'type': 'struct tm'}, {'name': 'unattached', 'type': 'child<container>'}, {'name': 'rtc', 'type': 'child<spapr-rtc>'}, {'name': 'resize-hpt', 'type': 'string'}]} and (on unmodified host kernel): {"execute": "qom-get", "arguments": {"path": "/machine", "property": "cap-ibs"}} {'return': 'broken'} etc. -- Alexey
signature.asc
Description: OpenPGP digital signature