Eric Blake <eblake@xxxxxxxxxx> writes: > On Thu, Oct 28, 2021 at 12:25:20PM +0200, Markus Armbruster wrote: >> New option parameters unstable-input and unstable-output set policy >> for unstable interfaces just like deprecated-input and >> deprecated-output set policy for deprecated interfaces (see commit >> 6dd75472d5 "qemu-options: New -compat to set policy for deprecated >> interfaces"). This is intended for testing users of the management >> interfaces. It is experimental. >> >> For now, this covers only syntactic aspects of QMP, i.e. stuff tagged >> with feature 'unstable'. We may want to extend it to cover semantic >> aspects, or the command line. >> >> Note that there is no good way for management application to detect >> presence of these new option parameters: they are not visible output >> of query-qmp-schema or query-command-line-options. Tolerable, because >> it's meant for testing. If running with -compat fails, skip the test. > > Not to mention, once we finish QAPIfying the command line, we could > make sure it is visible through introspection at that time (it may > require tagging the command line option with a feature, if nothing > else makes it pop through). > >> >> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> >> Acked-by: John Snow <jsnow@xxxxxxxxxx> >> --- >> qapi/compat.json | 6 +++++- >> include/qapi/util.h | 1 + >> qapi/qmp-dispatch.c | 6 ++++++ >> qapi/qobject-output-visitor.c | 8 ++++++-- >> qemu-options.hx | 20 +++++++++++++++++++- >> scripts/qapi/events.py | 10 ++++++---- >> scripts/qapi/schema.py | 10 ++++++---- >> 7 files changed, 49 insertions(+), 12 deletions(-) >> >> diff --git a/qapi/compat.json b/qapi/compat.json >> index 74a8493d3d..9bc9804abb 100644 >> --- a/qapi/compat.json >> +++ b/qapi/compat.json >> @@ -47,9 +47,13 @@ >> # >> # @deprecated-input: how to handle deprecated input (default 'accept') >> # @deprecated-output: how to handle deprecated output (default 'accept') >> +# @unstable-input: how to handle unstable input (default 'accept') >> +# @unstable-output: how to handle unstable output (default 'accept') > > Missing '(since 6.2)' doc tags on the two new policies. Fixing... >> # >> # Since: 6.0 >> ## >> { 'struct': 'CompatPolicy', >> 'data': { '*deprecated-input': 'CompatPolicyInput', >> - '*deprecated-output': 'CompatPolicyOutput' } } >> + '*deprecated-output': 'CompatPolicyOutput', >> + '*unstable-input': 'CompatPolicyInput', >> + '*unstable-output': 'CompatPolicyOutput' } } >> diff --git a/include/qapi/util.h b/include/qapi/util.h >> index 0cc98db9f9..81a2b13a33 100644 >> --- a/include/qapi/util.h >> +++ b/include/qapi/util.h >> @@ -13,6 +13,7 @@ >> >> typedef enum { >> QAPI_DEPRECATED, >> + QAPI_UNSTABLE, >> } QapiSpecialFeature; > >> +++ b/qemu-options.hx >> @@ -3641,7 +3641,9 @@ DEFHEADING(Debug/Expert options:) >> >> DEF("compat", HAS_ARG, QEMU_OPTION_compat, >> "-compat [deprecated-input=accept|reject|crash][,deprecated-output=accept|hide]\n" >> - " Policy for handling deprecated management interfaces\n", >> + " Policy for handling deprecated management interfaces\n" >> + "-compat [unstable-input=accept|reject|crash][,unstable-output=accept|hide]\n" >> + " Policy for handling unstable management interfaces\n", > > It may not be machine-introspectible, but at least we can grep --help > output to see when the policy is usable for testing. > >> QEMU_ARCH_ALL) >> SRST >> ``-compat [deprecated-input=@var{input-policy}][,deprecated-output=@var{output-policy}]`` >> @@ -3659,6 +3661,22 @@ SRST >> Suppress deprecated command results and events >> >> Limitation: covers only syntactic aspects of QMP. >> + >> +``-compat [unstable-input=@var{input-policy}][,unstable-output=@var{output-policy}]`` >> + Set policy for handling unstable management interfaces (experimental): > > Once we QAPIfy the command line, this says we would add the 'unstable' > feature flag to '-compat unstable-input'. How meta ;) Yes :) > And goes along > with your comments earlier in the series about how we may use the > 'unstable' feature even without the 'x-' naming prefix, once it is > machine-detectible. > > With the doc tweak, > Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> Thanks!