qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 00/10] hostmem: use object "id" for memory region name with >= 3.1
@ 2018-10-30 15:04 Marc-André Lureau
  2018-10-30 15:04 ` [Qemu-devel] [PATCH v2 01/10] qom: make user_creatable_complete() specific to UserCreatable Marc-André Lureau
                   ` (13 more replies)
  0 siblings, 14 replies; 28+ messages in thread
From: Marc-André Lureau @ 2018-10-30 15:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Amit Shah, Eduardo Habkost, Marcel Apfelbaum,
	dgilbert, Richard Henderson, Andreas Färber, Igor Mammedov,
	Michael S. Tsirkin, Artyom Tarasenko, Mark Cave-Ayland,
	Marc-André Lureau

Hi,

The migration code expects the RAM block name to match between the
source and destination.  However the backend type may change, so it is
possible (so far) to migrate from a hostmem-file to a hostmem-memfd
for example.

However, hostmem backends use inconsistent RAM naming, which can cause
a name mismatch. hostmem-file and hostmem-memfd use the whole object
path as memory name, while -ram use only the object "id".

This series adds global property support for objects others than
TYPE_DEVICE (only TYPE_USER_CREATABLE for now), and a new compat
property "x-use-canonical-path-for-ramblock-id" to hostmem for legacy
canonical path names, set to true for -file and -memfd with qemu < 3.1.

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 (10):
  qom: make user_creatable_complete() specific to UserCreatable
  accel: register global_props like machine globals
  qdev: move qdev_prop_register_global_list() to tests
  qom/globals: move qdev globals to qom
  qom/globals: generalize object_property_set_globals()
  qom/object: set globals when initializing object
  qom/object: add set_globals flags
  tests: add user-creatable test to test-qdev-global-props
  hw/i386: add pc-i440fx-3.1 & pc-q35-3.1
  hostmem: use object id for memory region name with >= 3.1

 include/hw/compat.h                           |  11 +-
 include/hw/i386/pc.h                          |   2 +-
 include/hw/qdev-core.h                        |  20 ---
 include/hw/qdev-properties.h                  |  34 +---
 include/qom/globals.h                         |  32 ++++
 include/qom/object.h                          |   1 +
 include/qom/object_interfaces.h               |   4 +-
 include/sysemu/hostmem.h                      |   3 +-
 accel/accel.c                                 |   9 +-
 backends/hostmem-file.c                       |   8 +-
 backends/hostmem-memfd.c                      |   2 +-
 backends/hostmem-ram.c                        |   9 +-
 backends/hostmem.c                            |  30 ++++
 hw/core/machine.c                             |   2 +-
 hw/core/qdev-properties.c                     |  97 -----------
 hw/core/qdev.c                                |   7 +-
 hw/i386/pc_piix.c                             |  15 +-
 hw/i386/pc_q35.c                              |  13 +-
 hw/misc/ivshmem.c                             |   2 +-
 hw/virtio/virtio-rng.c                        |   2 +-
 qom/cpu.c                                     |   2 +-
 qom/globals.c                                 |  76 +++++++++
 qom/object.c                                  |  17 +-
 qom/object_interfaces.c                       |  21 ++-
 target/i386/cpu.c                             |   2 +-
 target/sparc/cpu.c                            |   2 +-
 ...dev-global-props.c => test-global-props.c} | 150 +++++++++++++++---
 vl.c                                          |   6 +-
 qom/Makefile.objs                             |   2 +-
 tests/Makefile.include                        |   4 +-
 30 files changed, 362 insertions(+), 223 deletions(-)
 create mode 100644 include/qom/globals.h
 create mode 100644 qom/globals.c
 rename tests/{test-qdev-global-props.c => test-global-props.c} (71%)

-- 
2.19.0.271.gfe8321ec05

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2018-11-20 12:01 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-30 15:04 [Qemu-devel] [PATCH v2 00/10] hostmem: use object "id" for memory region name with >= 3.1 Marc-André Lureau
2018-10-30 15:04 ` [Qemu-devel] [PATCH v2 01/10] qom: make user_creatable_complete() specific to UserCreatable Marc-André Lureau
2018-11-01 11:03   ` Igor Mammedov
2018-10-30 15:04 ` [Qemu-devel] [PATCH v2 02/10] accel: register global_props like machine globals Marc-André Lureau
2018-10-30 15:04 ` [Qemu-devel] [PATCH v2 03/10] qdev: move qdev_prop_register_global_list() to tests Marc-André Lureau
2018-10-31 20:22   ` Eduardo Habkost
2018-10-30 15:04 ` [Qemu-devel] [PATCH v2 04/10] qom/globals: move qdev globals to qom Marc-André Lureau
2018-10-30 15:04 ` [Qemu-devel] [PATCH v2 05/10] qom/globals: generalize object_property_set_globals() Marc-André Lureau
2018-10-31 20:12   ` Eduardo Habkost
2018-11-01 10:18     ` Igor Mammedov
2018-11-01 15:27       ` Eduardo Habkost
2018-11-01 15:58         ` Igor Mammedov
2018-10-30 15:04 ` [Qemu-devel] [PATCH v2 06/10] qom/object: set globals when initializing object Marc-André Lureau
2018-10-30 15:04 ` [Qemu-devel] [PATCH v2 07/10] qom/object: add set_globals flags Marc-André Lureau
2018-10-31 20:23   ` Eduardo Habkost
2018-10-30 15:04 ` [Qemu-devel] [PATCH v2 08/10] tests: add user-creatable test to test-qdev-global-props Marc-André Lureau
2018-10-30 15:04 ` [Qemu-devel] [PATCH v2 09/10] hw/i386: add pc-i440fx-3.1 & pc-q35-3.1 Marc-André Lureau
2018-10-31 20:14   ` Eduardo Habkost
2018-11-01 14:59   ` Igor Mammedov
2018-11-20 12:00     ` Marc-André Lureau
2018-10-30 15:04 ` [Qemu-devel] [PATCH v2 10/10] hostmem: use object id for memory region name with >= 3.1 Marc-André Lureau
2018-10-31 20:27   ` Eduardo Habkost
2018-11-01 15:16     ` Igor Mammedov
2018-11-01 15:31       ` Eduardo Habkost
2018-10-31 14:41 ` [Qemu-devel] [PATCH v2 00/10] hostmem: use object "id" " no-reply
2018-10-31 14:43 ` no-reply
2018-11-03  3:37 ` no-reply
2018-11-03  3:39 ` no-reply

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).