All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel@nongnu.org, imammedo@redhat.com, ehabkost@redhat.com
Subject: Re: [Qemu-devel] [PATCH v6 00/28] Generalize machine compatibility properties
Date: Thu, 13 Dec 2018 12:58:33 +0100	[thread overview]
Message-ID: <20181213125833.5fa2205d.cohuck@redhat.com> (raw)
In-Reply-To: <20181212214850.29953-1-marcandre.lureau@redhat.com>

On Thu, 13 Dec 2018 01:48:22 +0400
Marc-André Lureau <marcandre.lureau@redhat.com> 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.
> 
> 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 < 4.0.
> 
> (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)
> 
> v6:
> - split "hw: apply machine compat properties without touching globals"
> - replace PC_COMPAT_* and HW_COMPAT_* defines with static arrays
> - add ARMCPUInfo *info in ARMCPUClass for "arm: replace
>   instance_post_init()" patch
> - rebased, commit message updates, add some r-b tags

I have not reviewed it in detail, but the machine compat handling
changes look reasonable to me.

[I'll maybe do some proper review if I find some time.]

> 
> v5:
> - replace the SET_COMPAT macros, use normal function instead
>   (suggested by Eduardo)
> - replace the TYPE_COMPAT_PROPS interface approach for explicit
>   object_apply_compat_props(), solving post-init ordering issues.
> - get back to coupling compat properties with machine, in qdev
>   (although there is still some discussion how to improve this, it
>    can be changed later)
> - mark the "arm: replace instance_post_init()" as RFC, since it is not
>   longer required for this series
> - change machines version from 3.2 to 4.0
> - add some r-b tags
> 
> v4:
> - fix accel/machine compat props apply order inversion
> - split "qdev: do not mix compat props with global props": replace
>   using current_machine by new compat_props global, introduce
>   SET_COMPAT() macro, use GPtrArray.
> - add a comment about "qdev-props: call object_apply_global_props()"
>   error reporting
> - add "arm: replace instance_post_init()", to solve the post-init
>   ordering issue
> - add "hw/arm/virt: add virt-3.2 machine type" for completeness
> - commit message improvements
> - rebased, add r-b tags
> 
> 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 (28):
>   hw: apply accel compat properties without touching globals
>   machines: replace COMPAT define with a static array
>   hw: apply machine compat properties without touching globals
>   machine: move compat properties out of globals
>   hw: remove SET_MACHINE_COMPAT
>   compat: replace PC_COMPAT_3_1 & HW_COMPAT_3_1 macros
>   compat: replace PC_COMPAT_3_0 & HW_COMPAT_3_0 macros
>   compat: replace PC_COMPAT_2_12 & HW_COMPAT_2_12 macros
>   compat: replace PC_COMPAT_2_11 & HW_COMPAT_2_11 macros
>   compat: replace PC_COMPAT_2_10 & HW_COMPAT_2_10 macros
>   compat: replace PC_COMPAT_2_9 & HW_COMPAT_2_9 macros
>   compat: replace PC_COMPAT_2_8 & HW_COMPAT_2_8 macros
>   compat: replace PC_COMPAT_2_7 & HW_COMPAT_2_7 macros
>   compat: replace PC_COMPAT_2_6 & HW_COMPAT_2_6 macros
>   compat: replace PC_COMPAT_2_5 & HW_COMPAT_2_5 macros
>   compat: replace PC_COMPAT_2_4 & HW_COMPAT_2_4 macros
>   compat: replace PC_COMPAT_2_3 & HW_COMPAT_2_3 macros
>   compat: replace PC_COMPAT_2_2 & HW_COMPAT_2_2 macros
>   compat: replace PC_COMPAT_2_1 & HW_COMPAT_2_1 macros
>   include: remove compat.h
>   compat: remove remaining PC_COMPAT macros
>   qdev: make a separate helper function to apply compat properties
>   qdev: all globals are now user-provided
>   qdev-props: convert global_props to GPtrArray
>   qdev-props: remove errp from GlobalProperty
>   qdev-props: call object_apply_global_props()
>   arm: replace instance_post_init()
>   hostmem: use object id for memory region name with >= 4.0
> 
>  include/hw/boards.h            |  59 ++-
>  include/hw/compat.h            | 291 --------------
>  include/hw/i386/pc.h           | 684 +++------------------------------
>  include/hw/qdev-core.h         |  21 +-
>  include/qom/object.h           |   3 +
>  include/sysemu/accel.h         |   4 +-
>  include/sysemu/hostmem.h       |   3 +-
>  target/arm/cpu-qom.h           |   3 +
>  target/arm/cpu.h               |   2 +
>  accel/accel.c                  |  12 -
>  backends/hostmem-file.c        |   8 +-
>  backends/hostmem-memfd.c       |   2 +-
>  backends/hostmem-ram.c         |   9 +-
>  backends/hostmem.c             |  36 ++
>  hw/arm/virt.c                  |  46 +--
>  hw/core/machine.c              | 339 +++++++++++++++-
>  hw/core/qdev-properties.c      |  49 +--
>  hw/core/qdev.c                 |  15 +
>  hw/i386/pc.c                   | 668 ++++++++++++++++++++++++++++++++
>  hw/i386/pc_piix.c              | 603 +++++++++++++++--------------
>  hw/i386/pc_q35.c               |  36 +-
>  hw/ppc/spapr.c                 | 207 +++++-----
>  hw/s390x/s390-virtio-ccw.c     | 191 +++++----
>  hw/xen/xen-common.c            |  41 +-
>  qom/cpu.c                      |   1 -
>  qom/object.c                   |  35 ++
>  target/arm/cpu.c               |  30 +-
>  target/arm/cpu64.c             |  24 +-
>  target/i386/cpu.c              |   1 -
>  target/sparc/cpu.c             |   1 -
>  tests/test-qdev-global-props.c |  57 +--
>  vl.c                           |   4 -
>  32 files changed, 1817 insertions(+), 1668 deletions(-)
>  delete mode 100644 include/hw/compat.h
> 

  parent reply	other threads:[~2018-12-13 11:58 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-12 21:48 [Qemu-devel] [PATCH v6 00/28] Generalize machine compatibility properties Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 01/28] hw: apply accel compat properties without touching globals Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 02/28] machines: replace COMPAT define with a static array Marc-André Lureau
2018-12-17 11:22   ` Igor Mammedov
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 03/28] hw: apply machine compat properties without touching globals Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 04/28] machine: move compat properties out of globals Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 05/28] hw: remove SET_MACHINE_COMPAT Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 06/28] compat: replace PC_COMPAT_3_1 & HW_COMPAT_3_1 macros Marc-André Lureau
2018-12-13 11:55   ` Cornelia Huck
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 07/28] compat: replace PC_COMPAT_3_0 & HW_COMPAT_3_0 macros Marc-André Lureau
2018-12-20 20:08   ` Eduardo Habkost
2018-12-20 21:58     ` Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 08/28] compat: replace PC_COMPAT_2_12 & HW_COMPAT_2_12 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 09/28] compat: replace PC_COMPAT_2_11 & HW_COMPAT_2_11 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 10/28] compat: replace PC_COMPAT_2_10 & HW_COMPAT_2_10 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 11/28] compat: replace PC_COMPAT_2_9 & HW_COMPAT_2_9 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 12/28] compat: replace PC_COMPAT_2_8 & HW_COMPAT_2_8 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 13/28] compat: replace PC_COMPAT_2_7 & HW_COMPAT_2_7 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 14/28] compat: replace PC_COMPAT_2_6 & HW_COMPAT_2_6 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 15/28] compat: replace PC_COMPAT_2_5 & HW_COMPAT_2_5 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 16/28] compat: replace PC_COMPAT_2_4 & HW_COMPAT_2_4 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 17/28] compat: replace PC_COMPAT_2_3 & HW_COMPAT_2_3 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 18/28] compat: replace PC_COMPAT_2_2 & HW_COMPAT_2_2 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 19/28] compat: replace PC_COMPAT_2_1 & HW_COMPAT_2_1 macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 20/28] include: remove compat.h Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 21/28] compat: remove remaining PC_COMPAT macros Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 22/28] qdev: make a separate helper function to apply compat properties Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 23/28] qdev: all globals are now user-provided Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 24/28] qdev-props: convert global_props to GPtrArray Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 25/28] qdev-props: remove errp from GlobalProperty Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 26/28] qdev-props: call object_apply_global_props() Marc-André Lureau
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 27/28] arm: replace instance_post_init() Marc-André Lureau
2018-12-17  9:52   ` Igor Mammedov
2018-12-12 21:48 ` [Qemu-devel] [PATCH v6 28/28] hostmem: use object id for memory region name with >= 4.0 Marc-André Lureau
2018-12-20 15:40   ` Igor Mammedov
2018-12-13 11:58 ` Cornelia Huck [this message]
2018-12-20 15:42 ` [Qemu-devel] [PATCH v6 00/28] Generalize machine compatibility properties Igor Mammedov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181213125833.5fa2205d.cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.