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 <jtomko@xxxxxxxxxx> Jano
Attachment:
signature.asc
Description: PGP signature