On a Thursday in 2021, Peter Krempa wrote:
Hi,
this series started as an exploration in how we use
'query-command-line-options' and the way to possibly step away from
using it. The main problem is that query-command-line-options is using
old-style command line parsing infra in qemu and thus doesn't scale.

In an effor to help qemu developers identify what we still need to query
using the command I set to clean up the parsing.

This series consists of:

- removal of unneeded tests (covered by other cases or pointless)
- adding of comments which simplify lookup of capability string from
 enum value name
- grouping of the queries by name
- refactor of probing of stuff which can be probed differently
- removal of some other probes
- cleanups of the driver code

In general we've got the following cases:

- good ones:
   - can be queried differently
   - this patchset has converted (probably) all of them

- the "bad" ones:
   - stuff we can't replace yet and we need to probe it, few examples
   are:
       - pressence of seccomp
       - support of 'fd=' for chardevs
       - various VNC and spice config options

- the possibly "ugly":
   - these are options which are supported by all qemu versions and are
     unlikely to be removed, but there's no different way to probe
     them, we can always assume them
   - those are the QEMU_CAPS_NAME* and QEMU_CAPS_MSG_TIMESTAMP at the
     end, these patches are RFC as it may be considered a backwards
     step just to assume it's supported

Note that the removal of probing of -drive throttling caps can be
replaced in case something gets deprecated via probing the 'throttling'
object. This was added recently though. Since it's unlikely that pieces
would be removed in the groups they were added removal of these caps is
classified in the 'good' part.

Peter Krempa (22):
 qemuxml2argvtest: Remove negative tests for (aes|dea)keywrap (s390)
   property
 virQEMUCapsCommandLine: Group by commandline argument name
   alphabetically
 virQEMUCapsQMPSchemaQueries: Group by queried object name
 scripts: group-qemu-caps: Add capability name as comment to capability
   string
 qemu: capabilities: Note that basing probing on
   'query-command-line-options' should be avoided
 qemu: capabilities: Probe 'reconnect', 'logfile' and 'append' from
   'chardev-add'
 qemu: capabilities: Rename QEMU_CAPS_CHARDEV_FD_PASS to
   QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLINE
 qemu: capabilities: Probe 'discard' and 'detect-zeroes' from
   'blockdev-add'
 qemu: capabilities: Probe QEMU_CAPS_SMP_DIES from the QMP schema
 qemu: Always assume that qemu supports drive throttling
 qemu: capabilties: Retire QEMU_CAPS_DRIVE_IOTUNE_* caps
 qemuMonitorJSONSetBlockIoThrottle: Refactor cleanup
 qemuMonitorJSONSetBlockIoThrottle: Switch to standard error reporting
 qemuMonitorSetBlockIoThrottle: Remove booleans controlling used fields
 qemu: capabilities: Add alternative detection of QEMU_CAPS_NUMA
 qemuxml2argvtest: Remove 'debug-threads' case
 qemuxml2argvtest: Remove 'minimal-msg-timestamp'
 qemuxml2argvtest: Remove 'minimal-sandbox' case
 qemu: command: Always assume support for '-name guest=' and '-name
   debug-threads=on'
 qemu: capabilities: Retire QEMU_CAPS_NAME*
 qemu: command: Always assume support for '-msg timestamp=on'
 qemu: capabilities: Retire QEMU_CAPS_MSG_TIMESTAMP

scripts/group-qemu-caps.py                    |  43 +-
src/qemu/qemu_capabilities.c                  | 888 +++++++++---------
src/qemu/qemu_capabilities.h                  |  14 +-

[...]

tests/qemuxml2argvdata/watchdog.args          |   5 +-
tests/qemuxml2argvdata/x86-kvm-32-on-64.args  |   5 +-
tests/qemuxml2argvtest.c                      |  34 +-
630 files changed, 2232 insertions(+), 2259 deletions(-)
delete mode 100644 tests/qemuxml2argvdata/debug-threads.args
delete mode 100644 tests/qemuxml2argvdata/debug-threads.xml
delete mode 100644 tests/qemuxml2argvdata/machine-aeskeywrap-off-cap.err
delete mode 100644 tests/qemuxml2argvdata/machine-aeskeywrap-off-caps.err
delete mode 100644 tests/qemuxml2argvdata/machine-aeskeywrap-on-cap.err
delete mode 100644 tests/qemuxml2argvdata/machine-aeskeywrap-on-caps.err
delete mode 100644 tests/qemuxml2argvdata/machine-deakeywrap-off-cap.err
delete mode 100644 tests/qemuxml2argvdata/machine-deakeywrap-off-caps.err
delete mode 100644 tests/qemuxml2argvdata/machine-deakeywrap-on-cap.err
delete mode 100644 tests/qemuxml2argvdata/machine-deakeywrap-on-caps.err
delete mode 100644 tests/qemuxml2argvdata/minimal-msg-timestamp.args
delete mode 100644 tests/qemuxml2argvdata/minimal-msg-timestamp.xml
delete mode 100644 tests/qemuxml2argvdata/minimal-sandbox.args
delete mode 100644 tests/qemuxml2argvdata/minimal-sandbox.xml


Reviewed-by: Ján Tomko <jto...@redhat.com>

Jano

Attachment: signature.asc
Description: PGP signature

Reply via email to