qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Igor Mammedov <imammedo@redhat.com>,
	qemu-devel@nongnu.org, Markus Armbruster <armbru@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>
Cc: "Paul Burton" <pburton@wavecomp.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Leif Lindholm" <leif.lindholm@linaro.org>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"KONRAD Frederic" <frederic.konrad@adacore.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Rob Herring" <robh@kernel.org>,
	"Andrey Smirnov" <andrew.smirnov@gmail.com>,
	"Helge Deller" <deller@gmx.de>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Joel Stanley" <joel@jms.id.au>,
	"Aleksandar Rikalo" <aleksandar.rikalo@rt-rk.com>,
	"Richard Henderson" <rth@twiddle.net>,
	"Artyom Tarasenko" <atar4qemu@gmail.com>,
	"Antony Pavlov" <antonynpavlov@gmail.com>,
	"Alistair Francis" <alistair@alistair23.me>,
	"Fabien Chouteau" <chouteau@adacore.com>,
	"Beniamino Galvani" <b.galvani@gmail.com>,
	qemu-arm@nongnu.org, "Peter Chubb" <peter.chubb@nicta.com.au>,
	"Cédric Le Goater" <clg@kaod.org>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Radoslaw Biernacki" <radoslaw.biernacki@linaro.org>,
	"Thomas Huth" <huth@tuxfamily.org>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Andrew Baumann" <Andrew.Baumann@microsoft.com>,
	"Jean-Christophe Dubois" <jcd@tribudubois.net>,
	"Andrew Jeffery" <andrew@aj.id.au>,
	"Michael Walle" <michael@walle.cc>,
	qemu-ppc@nongnu.org,
	"Aleksandar Markovic" <amarkovic@wavecomp.com>,
	"Jan Kiszka" <jan.kiszka@web.de>,
	"Aurelien Jarno" <aurelien@aurel32.net>
Subject: [PATCH 09/21] hw: Let memory_region_allocate_system_memory take MachineState argument
Date: Mon, 21 Oct 2019 00:56:38 +0200	[thread overview]
Message-ID: <20191020225650.3671-10-philmd@redhat.com> (raw)
In-Reply-To: <20191020225650.3671-1-philmd@redhat.com>

All the codebase calls memory_region_allocate_system_memory() with
a NULL 'owner' from the board_init() function.
Let pass a MachineState argument, and enforce the QOM ownership of
the system memory.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/core/numa.c      | 11 +++++++----
 include/hw/boards.h |  6 ++++--
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/hw/core/numa.c b/hw/core/numa.c
index 038c96d4ab..2e29e4bfe0 100644
--- a/hw/core/numa.c
+++ b/hw/core/numa.c
@@ -520,21 +520,24 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
     vmstate_register_ram_global(mr);
 }
 
-void memory_region_allocate_system_memory(MemoryRegion *mr, Object *owner,
+void memory_region_allocate_system_memory(MemoryRegion *mr, MachineState *ms,
                                           const char *name,
                                           uint64_t ram_size)
 {
     uint64_t addr = 0;
     int i;
-    MachineState *ms = MACHINE(qdev_get_machine());
+
+    if (!ms) {
+        ms = MACHINE(qdev_get_machine());
+    }
 
     if (ms->numa_state == NULL ||
         ms->numa_state->num_nodes == 0 || !have_memdevs) {
-        allocate_system_memory_nonnuma(mr, owner, name, ram_size);
+        allocate_system_memory_nonnuma(mr, OBJECT(ms), name, ram_size);
         return;
     }
 
-    memory_region_init(mr, owner, name, ram_size);
+    memory_region_init(mr, OBJECT(ms), name, ram_size);
     for (i = 0; i < ms->numa_state->num_nodes; i++) {
         uint64_t size = ms->numa_state->nodes[i].node_mem;
         HostMemoryBackend *backend = ms->numa_state->nodes[i].node_memdev;
diff --git a/include/hw/boards.h b/include/hw/boards.h
index de45087f34..3b6cb82b6c 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -14,7 +14,7 @@
 /**
  * memory_region_allocate_system_memory - Allocate a board's main memory
  * @mr: the #MemoryRegion to be initialized
- * @owner: the object that tracks the region's reference count
+ * @ms: the #MachineState object that own the system memory
  * @name: name of the memory region
  * @ram_size: size of the region in bytes
  *
@@ -38,8 +38,10 @@
  * Smaller pieces of memory (display RAM, static RAMs, etc) don't need
  * to be backed via the -mem-path memory backend and can simply
  * be created via memory_region_init_ram().
+ *
+ * The #MachineState object will track the region's reference count.
  */
-void memory_region_allocate_system_memory(MemoryRegion *mr, Object *owner,
+void memory_region_allocate_system_memory(MemoryRegion *mr, MachineState *ms,
                                           const char *name,
                                           uint64_t ram_size);
 
-- 
2.21.0



  parent reply	other threads:[~2019-10-20 23:15 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-20 22:56 [PATCH 00/21] hw: Let the machine be the owner of the system memory Philippe Mathieu-Daudé
2019-10-20 22:56 ` [PATCH 01/21] hw/arm/xilinx_zynq: Use the IEC binary prefix definitions Philippe Mathieu-Daudé
2019-10-21 16:49   ` Richard Henderson
2019-10-21 20:47   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 02/21] hw/arm/mps2: " Philippe Mathieu-Daudé
2019-10-21 16:50   ` Richard Henderson
2019-10-21 20:47   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 03/21] hw/arm/collie: Create the RAM in the board Philippe Mathieu-Daudé
2019-10-21 16:55   ` Richard Henderson
2019-10-21 20:49   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 04/21] hw/arm/omap2: " Philippe Mathieu-Daudé
2019-10-21 16:59   ` Richard Henderson
2019-10-21 17:18     ` Philippe Mathieu-Daudé
2019-10-20 22:56 ` [PATCH 05/21] hw/arm/omap1: " Philippe Mathieu-Daudé
2019-10-21 17:03   ` Richard Henderson
2019-10-20 22:56 ` [PATCH 06/21] hw/arm/digic4: Inline digic4_board_setup_ram() function Philippe Mathieu-Daudé
2019-10-21 17:04   ` Richard Henderson
2019-10-21 20:51   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 07/21] hw: Drop QOM ownership on memory_region_allocate_system_memory() calls Philippe Mathieu-Daudé
2019-10-21 23:18   ` Alistair Francis
2019-10-22  9:47     ` Artyom Tarasenko
2019-10-20 22:56 ` [PATCH 08/21] hw/alpha/dp264: Create the RAM in the board Philippe Mathieu-Daudé
2019-10-21  8:53   ` Philippe Mathieu-Daudé
2019-10-21 17:27   ` Richard Henderson
2019-10-21 17:34     ` Philippe Mathieu-Daudé
2019-10-20 22:56 ` Philippe Mathieu-Daudé [this message]
2019-10-21  7:27   ` [PATCH 09/21] hw: Let memory_region_allocate_system_memory take MachineState argument Thomas Huth
2019-10-21  8:32     ` Philippe Mathieu-Daudé
2019-10-21 23:19   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 10/21] hw/core: Let the machine be the owner of the system memory Philippe Mathieu-Daudé
2019-10-21 23:20   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 11/21] hw/alpha: " Philippe Mathieu-Daudé
2019-10-21 17:14   ` Richard Henderson
2019-10-21 17:19     ` Richard Henderson
2019-10-21 17:26       ` Philippe Mathieu-Daudé
2019-10-20 22:56 ` [PATCH 12/21] hw/arm: " Philippe Mathieu-Daudé
2019-10-21  9:22   ` Peter Maydell
2019-10-21  9:33     ` Philippe Mathieu-Daudé
2019-10-21  9:39       ` Peter Maydell
2019-10-21 10:24         ` Philippe Mathieu-Daudé
2019-10-21 14:57           ` Dr. David Alan Gilbert
2021-02-03 16:05             ` Philippe Mathieu-Daudé
2019-10-20 22:56 ` [PATCH 13/21] hw/cris: " Philippe Mathieu-Daudé
2019-10-21 17:28   ` Richard Henderson
2019-10-21 20:56   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 14/21] hw/hppa: " Philippe Mathieu-Daudé
2019-10-21 17:29   ` Richard Henderson
2019-10-21 20:56   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 15/21] hw/i386: " Philippe Mathieu-Daudé
2019-10-21 17:29   ` Richard Henderson
2019-10-21 20:56   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 16/21] hw/lm32: " Philippe Mathieu-Daudé
2019-10-21 17:30   ` Richard Henderson
2019-10-21 20:57   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 17/21] hw/m68k: " Philippe Mathieu-Daudé
2019-10-21  7:28   ` Thomas Huth
2019-10-21 17:31   ` Richard Henderson
2019-10-21 20:57   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 18/21] hw/mips: " Philippe Mathieu-Daudé
2019-10-21  6:25   ` Aleksandar Markovic
2019-10-21  8:34     ` Philippe Mathieu-Daudé
2019-10-21 10:56       ` Aleksandar Markovic
2019-10-21 11:05         ` Philippe Mathieu-Daudé
2019-10-21 11:10           ` Aleksandar Markovic
2019-10-21 11:28             ` Philippe Mathieu-Daudé
2019-10-21 12:10               ` Aleksandar Markovic
2019-10-21 19:24   ` [EXTERNAL][PATCH " Aleksandar Markovic
2019-10-20 22:56 ` [PATCH 19/21] hw/ppc: " Philippe Mathieu-Daudé
2019-10-21  0:44   ` David Gibson
2019-10-21 17:33   ` Richard Henderson
2019-10-20 22:56 ` [PATCH 20/21] hw/sparc: " Philippe Mathieu-Daudé
2019-10-21 17:33   ` Richard Henderson
2019-10-20 22:56 ` [PATCH 21/21] hw/core: Assert memory_region_allocate_system_memory has machine owner Philippe Mathieu-Daudé
2019-10-21 17:41   ` Richard Henderson
2019-10-21 21:00   ` Alistair Francis
2019-10-21  0:03 ` [PATCH 00/21] hw: Let the machine be the owner of the system memory no-reply
2019-10-21  8:52 ` Philippe Mathieu-Daudé
2019-10-21 14:31   ` Philippe Mathieu-Daudé

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=20191020225650.3671-10-philmd@redhat.com \
    --to=philmd@redhat.com \
    --cc=Andrew.Baumann@microsoft.com \
    --cc=aleksandar.rikalo@rt-rk.com \
    --cc=alistair@alistair23.me \
    --cc=amarkovic@wavecomp.com \
    --cc=andrew.smirnov@gmail.com \
    --cc=andrew@aj.id.au \
    --cc=antonynpavlov@gmail.com \
    --cc=armbru@redhat.com \
    --cc=atar4qemu@gmail.com \
    --cc=aurelien@aurel32.net \
    --cc=b.galvani@gmail.com \
    --cc=chouteau@adacore.com \
    --cc=clg@kaod.org \
    --cc=david@gibson.dropbear.id.au \
    --cc=deller@gmx.de \
    --cc=edgar.iglesias@gmail.com \
    --cc=ehabkost@redhat.com \
    --cc=frederic.konrad@adacore.com \
    --cc=hpoussin@reactos.org \
    --cc=huth@tuxfamily.org \
    --cc=imammedo@redhat.com \
    --cc=jan.kiszka@web.de \
    --cc=jcd@tribudubois.net \
    --cc=joel@jms.id.au \
    --cc=leif.lindholm@linaro.org \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=michael@walle.cc \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=pburton@wavecomp.com \
    --cc=peter.chubb@nicta.com.au \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=radoslaw.biernacki@linaro.org \
    --cc=robh@kernel.org \
    --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 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).