All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Marcelo Tosatti" <mtosatti@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	qemu-arm@nongnu.org, "Eduardo Habkost" <ehabkost@redhat.com>,
	"Juan Quintela" <quintela@redhat.com>,
	kvm@vger.kernel.org, "Paolo Bonzini" <pbonzini@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Alistair Francis" <alistair.francis@wdc.com>,
	qemu-ppc@nongnu.org,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Richard Henderson" <rth@twiddle.net>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>
Subject: [PATCH 00/15] Replace current_machine by qdev_get_machine()
Date: Thu,  9 Jan 2020 16:21:18 +0100	[thread overview]
Message-ID: <20200109152133.23649-1-philmd@redhat.com> (raw)

Blurb from previous question [1]:

  "hw/boards.h" declare current_machine, and vl.c defines it:

    current_machine = MACHINE(object_new_with_class(OBJECT_CLASS(machine_class)));
    object_property_add_child(object_get_root(), "machine",
                              OBJECT(current_machine), &error_abort);

  The bigger user of 'current_machine' is the accel/KVM code.

  Recently in a0628599f..cc7d44c2e0 "Replace global smp variables
  with machine smp properties" we started to use MACHINE(qdev_get_machine()).
  Following a0628599f..cc7d44c2e0, a5e0b33119 use 'current_machine' again.

  qdev_get_machine() resolves the machine in the QOM composition tree.

Paolo answered [2]:

> I would always use MACHINE(qdev_get_machine()), espeecially outside
> vl.c.  Ideally, current_machine would be static within vl.c or even
> unused outside the object_property_add_child() that you quote above.

Let's remove the global current_machine.

I am still confused by this comment:

  /* qdev_get_machine() can return something that's not TYPE_MACHINE
   * if this is one of the user-only emulators; in that case there's
   * no need to check the ignore_memory_transaction_failures board flag.
   */

[1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg669475.html
[2] https://www.mail-archive.com/qemu-devel@nongnu.org/msg669493.html

Philippe Mathieu-Daudé (15):
  target/arm/kvm: Use CPUState::kvm_state in kvm_arm_pmu_supported()
  hw/ppc/spapr_rtas: Use local MachineState variable
  hw/ppc/spapr_rtas: Access MachineState via SpaprMachineState argument
  hw/ppc/spapr_rtas: Restrict variables scope to single switch case
  device-hotplug: Replace current_machine by qdev_get_machine()
  migration/savevm: Replace current_machine by qdev_get_machine()
  hw/core/machine-qmp-cmds: Replace current_machine by
    qdev_get_machine()
  target/arm/monitor: Replace current_machine by qdev_get_machine()
  device_tree: Replace current_machine by qdev_get_machine()
  memory: Replace current_machine by qdev_get_machine()
  exec: Replace current_machine by qdev_get_machine()
  accel: Introduce the current_accel() method
  accel: Replace current_machine->accelerator by current_accel() method
  accel/accel: Replace current_machine by qdev_get_machine()
  vl: Make current_machine a local variable

 include/hw/boards.h        |  2 --
 include/sysemu/accel.h     |  2 ++
 accel/accel.c              |  7 +++++++
 accel/kvm/kvm-all.c        |  4 ++--
 accel/tcg/tcg-all.c        |  2 +-
 device-hotplug.c           |  2 +-
 device_tree.c              |  4 +++-
 exec.c                     | 10 ++++++----
 hw/core/machine-qmp-cmds.c |  4 ++--
 hw/ppc/spapr_rtas.c        |  6 +++---
 memory.c                   |  6 ++++--
 migration/savevm.c         | 10 +++++-----
 target/arm/kvm.c           |  4 +---
 target/arm/kvm64.c         |  4 ++--
 target/arm/monitor.c       |  3 ++-
 target/i386/kvm.c          |  2 +-
 target/ppc/kvm.c           |  2 +-
 vl.c                       |  6 +++---
 18 files changed, 46 insertions(+), 34 deletions(-)

-- 
2.21.1


WARNING: multiple messages have this Message-ID (diff)
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	kvm@vger.kernel.org, "Juan Quintela" <quintela@redhat.com>,
	qemu-ppc@nongnu.org, "Marcelo Tosatti" <mtosatti@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	qemu-arm@nongnu.org,
	"Alistair Francis" <alistair.francis@wdc.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Richard Henderson" <rth@twiddle.net>
Subject: [PATCH 00/15] Replace current_machine by qdev_get_machine()
Date: Thu,  9 Jan 2020 16:21:18 +0100	[thread overview]
Message-ID: <20200109152133.23649-1-philmd@redhat.com> (raw)

Blurb from previous question [1]:

  "hw/boards.h" declare current_machine, and vl.c defines it:

    current_machine = MACHINE(object_new_with_class(OBJECT_CLASS(machine_class)));
    object_property_add_child(object_get_root(), "machine",
                              OBJECT(current_machine), &error_abort);

  The bigger user of 'current_machine' is the accel/KVM code.

  Recently in a0628599f..cc7d44c2e0 "Replace global smp variables
  with machine smp properties" we started to use MACHINE(qdev_get_machine()).
  Following a0628599f..cc7d44c2e0, a5e0b33119 use 'current_machine' again.

  qdev_get_machine() resolves the machine in the QOM composition tree.

Paolo answered [2]:

> I would always use MACHINE(qdev_get_machine()), espeecially outside
> vl.c.  Ideally, current_machine would be static within vl.c or even
> unused outside the object_property_add_child() that you quote above.

Let's remove the global current_machine.

I am still confused by this comment:

  /* qdev_get_machine() can return something that's not TYPE_MACHINE
   * if this is one of the user-only emulators; in that case there's
   * no need to check the ignore_memory_transaction_failures board flag.
   */

[1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg669475.html
[2] https://www.mail-archive.com/qemu-devel@nongnu.org/msg669493.html

Philippe Mathieu-Daudé (15):
  target/arm/kvm: Use CPUState::kvm_state in kvm_arm_pmu_supported()
  hw/ppc/spapr_rtas: Use local MachineState variable
  hw/ppc/spapr_rtas: Access MachineState via SpaprMachineState argument
  hw/ppc/spapr_rtas: Restrict variables scope to single switch case
  device-hotplug: Replace current_machine by qdev_get_machine()
  migration/savevm: Replace current_machine by qdev_get_machine()
  hw/core/machine-qmp-cmds: Replace current_machine by
    qdev_get_machine()
  target/arm/monitor: Replace current_machine by qdev_get_machine()
  device_tree: Replace current_machine by qdev_get_machine()
  memory: Replace current_machine by qdev_get_machine()
  exec: Replace current_machine by qdev_get_machine()
  accel: Introduce the current_accel() method
  accel: Replace current_machine->accelerator by current_accel() method
  accel/accel: Replace current_machine by qdev_get_machine()
  vl: Make current_machine a local variable

 include/hw/boards.h        |  2 --
 include/sysemu/accel.h     |  2 ++
 accel/accel.c              |  7 +++++++
 accel/kvm/kvm-all.c        |  4 ++--
 accel/tcg/tcg-all.c        |  2 +-
 device-hotplug.c           |  2 +-
 device_tree.c              |  4 +++-
 exec.c                     | 10 ++++++----
 hw/core/machine-qmp-cmds.c |  4 ++--
 hw/ppc/spapr_rtas.c        |  6 +++---
 memory.c                   |  6 ++++--
 migration/savevm.c         | 10 +++++-----
 target/arm/kvm.c           |  4 +---
 target/arm/kvm64.c         |  4 ++--
 target/arm/monitor.c       |  3 ++-
 target/i386/kvm.c          |  2 +-
 target/ppc/kvm.c           |  2 +-
 vl.c                       |  6 +++---
 18 files changed, 46 insertions(+), 34 deletions(-)

-- 
2.21.1



             reply	other threads:[~2020-01-09 15:21 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-09 15:21 Philippe Mathieu-Daudé [this message]
2020-01-09 15:21 ` [PATCH 00/15] Replace current_machine by qdev_get_machine() Philippe Mathieu-Daudé
2020-01-09 15:21 ` [PATCH 01/15] target/arm/kvm: Use CPUState::kvm_state in kvm_arm_pmu_supported() Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-10  9:59   ` Alistair Francis
2020-01-10  9:59     ` Alistair Francis
2020-01-09 15:21 ` [PATCH 02/15] hw/ppc/spapr_rtas: Use local MachineState variable Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-09 17:13   ` Greg Kurz
2020-01-09 17:13     ` Greg Kurz
2020-01-13  1:11   ` David Gibson
2020-01-13  1:11     ` David Gibson
2020-01-09 15:21 ` [PATCH 03/15] hw/ppc/spapr_rtas: Access MachineState via SpaprMachineState argument Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-09 17:13   ` Greg Kurz
2020-01-09 17:13     ` Greg Kurz
2020-01-13  1:11   ` David Gibson
2020-01-13  1:11     ` David Gibson
2020-01-09 15:21 ` [PATCH 04/15] hw/ppc/spapr_rtas: Restrict variables scope to single switch case Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-09 17:43   ` Greg Kurz
2020-01-09 17:43     ` Greg Kurz
2020-01-10  9:34     ` Philippe Mathieu-Daudé
2020-01-10  9:34       ` Philippe Mathieu-Daudé
2020-01-10  9:50       ` Greg Kurz
2020-01-10  9:50         ` Greg Kurz
2020-01-10 19:18         ` Eric Blake
2020-01-10 19:18           ` Eric Blake
2020-01-13  7:16         ` David Gibson
2020-01-13  7:16           ` David Gibson
2020-01-09 15:21 ` [PATCH 05/15] device-hotplug: Replace current_machine by qdev_get_machine() Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-12  9:42   ` Alistair Francis
2020-01-12  9:42     ` Alistair Francis
2020-01-09 15:21 ` [PATCH 06/15] migration/savevm: " Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-09 15:52   ` Dr. David Alan Gilbert
2020-01-09 15:52     ` Dr. David Alan Gilbert
2020-01-12  9:43   ` Alistair Francis
2020-01-12  9:43     ` Alistair Francis
2020-01-14 13:27   ` Juan Quintela
2020-01-14 13:27     ` Juan Quintela
2020-01-09 15:21 ` [PATCH 07/15] hw/core/machine-qmp-cmds: " Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-12  9:44   ` Alistair Francis
2020-01-12  9:44     ` Alistair Francis
2020-01-09 15:21 ` [PATCH 08/15] target/arm/monitor: " Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-12  9:47   ` Alistair Francis
2020-01-12  9:47     ` Alistair Francis
2020-01-09 15:21 ` [PATCH 09/15] device_tree: " Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-12  9:47   ` Alistair Francis
2020-01-12  9:47     ` Alistair Francis
2020-01-09 15:21 ` [PATCH 10/15] memory: " Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-12  9:48   ` Alistair Francis
2020-01-12  9:48     ` Alistair Francis
2020-01-12 13:45     ` Philippe Mathieu-Daudé
2020-01-12 13:45       ` Philippe Mathieu-Daudé
2020-01-14  2:02       ` Alistair Francis
2020-01-14  2:02         ` Alistair Francis
2020-01-09 15:21 ` [PATCH 11/15] exec: " Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-14  1:57   ` Alistair Francis
2020-01-14  1:57     ` Alistair Francis
2020-01-09 15:21 ` [PATCH 12/15] accel: Introduce the current_accel() method Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-14  1:59   ` Alistair Francis
2020-01-14  1:59     ` Alistair Francis
2020-01-09 15:21 ` [PATCH 13/15] accel: Replace current_machine->accelerator by " Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-14  1:58   ` Alistair Francis
2020-01-14  1:58     ` Alistair Francis
2020-01-09 15:21 ` [PATCH 14/15] accel/accel: Replace current_machine by qdev_get_machine() Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-14  1:59   ` Alistair Francis
2020-01-14  1:59     ` Alistair Francis
2020-01-09 15:21 ` [PATCH 15/15] vl: Make current_machine a local variable Philippe Mathieu-Daudé
2020-01-09 15:21   ` Philippe Mathieu-Daudé
2020-01-14  2:00   ` Alistair Francis
2020-01-14  2:00     ` Alistair Francis
2020-01-21  8:59 ` [PATCH 00/15] Replace current_machine by qdev_get_machine() Markus Armbruster
2020-01-21  8:59   ` Markus Armbruster

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=20200109152133.23649-1-philmd@redhat.com \
    --to=philmd@redhat.com \
    --cc=alistair.francis@wdc.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=dgilbert@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mtosatti@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=rth@twiddle.net \
    /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.