29.03.2022 00:15, Maxim Davydov wrote:
We need to be able to check machine type after its definition. It's necessary when using complicated inheritance of compatible features. For instance, this tool can help to find bugs in the machine type definition if the name of the device has been changed. Also, this tool was created to help with MTs of other projects such as vz branches.
We discussed verbally two points to change: 1. Instead of workarounds to avoid crashes, which are unsafe (we avoid crash, but is data that we generate this way valid or not?), let's require to call QEMU process with such options so everything that needed is initialized and we avoid crashes and still get valid information 2. We want not "default" values, but "current" ones. I.e., we start QEMU with same options like in production, and we clearly get all real values of machine properties.
Maxim Davydov (9): qmp: Add dump machine type compatible properties pci: add null-pointer check mem: appropriate handling getting mem region msmouse: add appropriate unregister handler wctablet: add appropriate unregister handler chardev: add appropriate getting address colo-compare: safe finalization qom: add command to print initial properties scripts: printing machine type compat properties chardev/char-socket.c | 9 ++ chardev/msmouse.c | 4 +- chardev/wctablet.c | 4 +- hw/core/machine-qmp-cmds.c | 25 +++- hw/i386/sgx-epc.c | 5 +- hw/mem/nvdimm.c | 6 + hw/mem/pc-dimm.c | 5 + hw/pci-host/i440fx.c | 17 ++- hw/pci-host/q35.c | 17 ++- net/colo-compare.c | 25 ++-- qapi/machine.json | 58 +++++++- qapi/qom.json | 69 +++++++++ qom/qom-qmp-cmds.c | 121 ++++++++++++++++ scripts/print_MT.py | 274 ++++++++++++++++++++++++++++++++++++ tests/qtest/fuzz/qos_fuzz.c | 2 +- 15 files changed, 613 insertions(+), 28 deletions(-) create mode 100755 scripts/print_MT.py
-- Best regards, Vladimir