mbox series

[v6,0/4] compare machine type compat_props

Message ID 20231108153827.39692-1-davydov-max@yandex-team.ru
Headers show
Series compare machine type compat_props | expand

Message

Maksim Davydov Nov. 8, 2023, 3:38 p.m. UTC
This script can be used to choose the best machine type in the
appropriate cases. Also we have to check compat_props of the old MT
after changes to be sure that they haven't broken old the MT. For
example, pc_compat_3_1 of pc-q35-3.1 has Icelake-Client which was
removed.

v6 -> v5:
* add ability to compare different QEMU binaries
* replace abstract drivers by its implementations
* improve human-readable format
* code refactoring

v5 -> v4:
* minor fixes

v4 -> v3:
* increase read buffer limit to limit value in libvirt
* add caching of qmp requests to speed up the script 

v3 -> v2:
* simplify adding new methods for getting QEMU default values
* add typing
* change concept from fixed dictionaries to classes

v2 -> v1:
* fix script code style and descriptions
* reorder patches
 
v1 -> previous iteration:
* new default value print concept
* QEMU python library is used to collect qmp data
* remove auxiliary patches (that was used to fix `->get` sematics)
* print compat_props in the correct order
* delete `absract` field to reduce output JSON size

Maksim Davydov (4):
  qom: add default value
  qmp: add dump machine type compatible properties
  python: add binary
  scripts: add script to compare compatible properties

 hw/core/machine-qmp-cmds.c     |  23 +-
 python/qemu/machine/machine.py |   5 +
 qapi/machine.json              |  54 +++-
 qom/qom-qmp-cmds.c             |   1 +
 scripts/compare_mt.py          | 484 +++++++++++++++++++++++++++++++++
 tests/qtest/fuzz/qos_fuzz.c    |   2 +-
 6 files changed, 565 insertions(+), 4 deletions(-)
 create mode 100755 scripts/compare_mt.py

Comments

Philippe Mathieu-Daudé Dec. 1, 2023, 11:04 a.m. UTC | #1
Hi Maksim,

On 8/11/23 16:38, Maksim Davydov wrote:
> This script can be used to choose the best machine type in the
> appropriate cases. Also we have to check compat_props of the old MT
> after changes to be sure that they haven't broken old the MT. For
> example, pc_compat_3_1 of pc-q35-3.1 has Icelake-Client which was
> removed.

> Maksim Davydov (4):
>    qom: add default value
>    qmp: add dump machine type compatible properties
>    python: add binary
>    scripts: add script to compare compatible properties
> 
>   hw/core/machine-qmp-cmds.c     |  23 +-
>   python/qemu/machine/machine.py |   5 +
>   qapi/machine.json              |  54 +++-
>   qom/qom-qmp-cmds.c             |   1 +
>   scripts/compare_mt.py          | 484 +++++++++++++++++++++++++++++++++

"compare_machine_types.py" name is more meaningful.

>   tests/qtest/fuzz/qos_fuzz.c    |   2 +-
>   6 files changed, 565 insertions(+), 4 deletions(-)
>   create mode 100755 scripts/compare_mt.py
>
Markus Armbruster Dec. 1, 2023, 1 p.m. UTC | #2
Philippe Mathieu-Daudé <philmd@linaro.org> writes:

> Hi Maksim,
>
> On 8/11/23 16:38, Maksim Davydov wrote:
>> This script can be used to choose the best machine type in the
>> appropriate cases. Also we have to check compat_props of the old MT
>> after changes to be sure that they haven't broken old the MT. For
>> example, pc_compat_3_1 of pc-q35-3.1 has Icelake-Client which was
>> removed.
>
>> Maksim Davydov (4):
>>    qom: add default value
>>    qmp: add dump machine type compatible properties
>>    python: add binary
>>    scripts: add script to compare compatible properties
>>   hw/core/machine-qmp-cmds.c     |  23 +-
>>   python/qemu/machine/machine.py |   5 +
>>   qapi/machine.json              |  54 +++-
>>   qom/qom-qmp-cmds.c             |   1 +
>>   scripts/compare_mt.py          | 484 +++++++++++++++++++++++++++++++++
>
> "compare_machine_types.py" name is more meaningful.

Please use '-' instead of '_' in program names.

>>   tests/qtest/fuzz/qos_fuzz.c    |   2 +-
>>   6 files changed, 565 insertions(+), 4 deletions(-)
>>   create mode 100755 scripts/compare_mt.py