[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Qemu-devel] [PATCH for-3.2 v3 00/14] Generalize machine compatibility properties
On Wed, 7 Nov 2018 16:36:38 +0400 Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> wrote: > Hi, > > During "[PATCH v2 05/10] qom/globals: generalize > object_property_set_globals()" review, Eduardo suggested to rework the > GlobalProperty handling, so that -global is limited to QDev only and > we avoid mixing the machine compats and the user-provided -global > properties (instead of generalizing -global to various object kinds, > like I proposed in v2). > > "qdev: do not mix compat props with global props" patch decouples a > bit user-provided -global from machine compat properties. This allows > to get rid of "user_provided" and "errp" fields in following patches. > > Instead of explcitely calling object_apply_global_props() in the > various object post_init, I opted for creating a new TYPE_COMPAT_PROPS > interface. The interface approach gives a lot more flexibility on > which objects can have compat props. This requires some interface > improvments in "qom: teach interfaces to implement post-init". > > A new compat property "x-use-canonical-path-for-ramblock-id" is added > to hostmem for legacy canonical path names, set to true for -file and > -memfd with qemu < 3.2. > > (this series was initially titled "[PATCH v2 00/10] hostmem: use > object "id" for memory region name with >= 3.1", but its focus is more > in refactoring the global and compatilibity properties handling now) That probably all feedback I'm able to give on this round of review, so I'll wait till it will addressed. > > v3: > - GlobalProperties improvements/cleanups > - drop generalizing the -global idea > - "replace" the set_globals flag with a TYPE_COMPAT_PROPS interface > - update hw/i386 machine version to 3.2 > - add "qom: make interface types abstract" interface cleanup > > v2: > - replace "qom/user-creatable: add a few helper macros" patch for a > more optimized "qom: make user_creatable_complete() specific to > UserCreatable" > - rename register_global_list() to register_global_properties() > - call object_property_set_globals() after post-init > - add and use a ObjectClass.set_globals flag, instead of dynamically > check object class in object_property_set_globals() > - use object "id" in >= 3.1 instead of canonical path, add compat > property "x-use-canonical-path-for-ramblock-id" in base hostmem > class. > > Marc-André Lureau (14): > tests: qdev_prop_check_globals() doesn't return "all_used" > qom: make interface types abstract > qom: make user_creatable_complete() specific to UserCreatable > accel: register global_props like machine globals > qdev: move qdev_prop_register_global_list() to tests > qdev: do not mix compat props with global props > qdev: all globals are now user-provided > qdev-props: convert global_props to GArray > qdev-props: remove errp from GlobalProperty > qdev-props: call object_apply_global_props() > qom: teach interfaces to implement post-init > machine: add compat-props interface > hw/i386: add pc-i440fx-3.2 & pc-q35-3.2 > hostmem: use object id for memory region name with >= 3.1 > > include/hw/acpi/acpi_dev_interface.h | 6 +-- > include/hw/arm/linux-boot-if.h | 5 +- > include/hw/boards.h | 3 +- > include/hw/compat.h | 11 ++++ > include/hw/fw-path-provider.h | 4 +- > include/hw/hotplug.h | 6 +-- > include/hw/i386/pc.h | 3 ++ > include/hw/intc/intc.h | 4 +- > include/hw/ipmi/ipmi.h | 4 +- > include/hw/isa/isa.h | 4 -- > include/hw/mem/memory-device.h | 4 +- > include/hw/nmi.h | 4 +- > include/hw/qdev-core.h | 9 ---- > include/hw/qdev-properties.h | 30 ----------- > include/hw/stream.h | 4 +- > include/hw/timer/m48t59.h | 4 +- > include/qom/object.h | 2 + > include/qom/object_interfaces.h | 10 ++-- > include/sysemu/accel.h | 4 +- > include/sysemu/hostmem.h | 3 +- > include/sysemu/tpm.h | 4 +- > target/arm/idau.h | 4 +- > accel/accel.c | 7 +-- > backends/hostmem-file.c | 8 +-- > backends/hostmem-memfd.c | 2 +- > backends/hostmem-ram.c | 9 ++-- > backends/hostmem.c | 31 +++++++++++ > hw/core/compat-props.c | 43 +++++++++++++++ > hw/core/machine.c | 18 ------- > hw/core/qdev-properties.c | 73 ++++++------------------- > hw/core/qdev.c | 4 ++ > hw/i386/pc_piix.c | 21 ++++++-- > hw/i386/pc_q35.c | 19 ++++++- > hw/misc/ivshmem.c | 2 +- > hw/virtio/virtio-rng.c | 2 +- > hw/xen/xen-common.c | 9 +++- > qom/cpu.c | 1 - > qom/object.c | 49 +++++++++++++++-- > qom/object_interfaces.c | 14 ++--- > stubs/machine.c | 4 ++ > target/i386/cpu.c | 1 - > target/sparc/cpu.c | 1 - > tests/check-qom-interface.c | 27 ++++++++-- > tests/test-qdev-global-props.c | 80 ++++++++-------------------- > vl.c | 4 -- > MAINTAINERS | 1 + > hw/core/Makefile.objs | 1 + > stubs/Makefile.objs | 1 + > tests/Makefile.include | 1 + > 49 files changed, 283 insertions(+), 282 deletions(-) > create mode 100644 hw/core/compat-props.c > create mode 100644 stubs/machine.c > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |