qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "David Hildenbrand" <david@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	qemu-arm@nongnu.org,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Igor Mammedov" <imammedo@redhat.com>,
	qemu-ppc@nongnu.org, "Cédric Le Goater" <clg@kaod.org>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Peter Xu" <peterx@redhat.com>
Subject: [PATCH-for-9.0 00/25] memory: Propagate Error* when possible
Date: Mon, 20 Nov 2023 22:32:34 +0100	[thread overview]
Message-ID: <20231120213301.24349-1-philmd@linaro.org> (raw)

Hi,

This series is remotely connected with the "dynamic machine"
project. We need QOM objects created either from command line,
QMP or loaded by modules to NOT fail exiting the whole QEMU
process, but cleanly propagate any error before failing cleanly.

In preparation for that big goal, we start reworking a bit the
Memory API to be able to propagate all errors.

This targets the 9.0 release, but posting earlier to discuss with
Markus meanwhile.

Regards,

Phil.

Philippe Mathieu-Daudé (25):
  memory: Have memory_region_init_ram_flags_nomigrate() return a boolean
  memory: Have memory_region_init_ram_nomigrate() handler return a
    boolean
  memory: Have memory_region_init_rom_nomigrate() handler return a
    boolean
  memory: Simplify memory_region_init_rom_nomigrate() calls
  memory: Simplify memory_region_init_ram_from_fd() calls
  memory: Have memory_region_init_ram() handler return a boolean
  memory: Have memory_region_init_rom() handler return a boolean
  memory: Have memory_region_init_rom_device_nomigrate() return a
    boolean
  memory: Simplify memory_region_init_rom_device_nomigrate() calls
  memory: Have memory_region_init_rom_device() handler return a boolean
  memory: Have memory_region_init_resizeable_ram() return a boolean
  memory: Have memory_region_init_ram_from_file() handler return a
    boolean
  memory: Have memory_region_init_ram_from_fd() handler return a boolean
  backends: Use g_autofree in HostMemoryBackendClass::alloc() handlers
  backends: Simplify host_memory_backend_memory_complete()
  backends: Have HostMemoryBackendClass::alloc() handler return a
    boolean
  backends: Reduce variable scope in host_memory_backend_memory_complete
  util/oslib: Have qemu_prealloc_mem() handler return a boolean
  misc: Simplify qemu_prealloc_mem() calls
  hw: Simplify memory_region_init_ram() calls
  hw/arm: Simplify memory_region_init_rom() calls
  hw/sparc: Simplify memory_region_init_ram_nomigrate() calls
  hw/misc: Simplify memory_region_init_ram_from_fd() calls
  hw/nvram: Simplify memory_region_init_rom_device() calls
  hw/pci-host/raven: Propagate error in raven_realize()

 include/exec/memory.h    |  40 ++++++++---
 include/qemu/osdep.h     |   4 +-
 include/sysemu/hostmem.h |  10 ++-
 backends/hostmem-epc.c   |  14 ++--
 backends/hostmem-file.c  |  22 +++---
 backends/hostmem-memfd.c |  13 ++--
 backends/hostmem-ram.c   |  12 ++--
 backends/hostmem.c       | 144 ++++++++++++++++++---------------------
 hw/arm/aspeed_ast2400.c  |   6 +-
 hw/arm/aspeed_ast2600.c  |   6 +-
 hw/arm/fsl-imx25.c       |  19 ++----
 hw/arm/fsl-imx31.c       |  19 ++----
 hw/arm/fsl-imx6.c        |  19 ++----
 hw/arm/integratorcp.c    |   7 +-
 hw/arm/nrf51_soc.c       |   7 +-
 hw/misc/ivshmem.c        |   8 +--
 hw/nvram/nrf51_nvm.c     |   7 +-
 hw/pci-host/raven.c      |   6 +-
 hw/ppc/rs6000_mc.c       |   7 +-
 hw/sparc/sun4m.c         |  20 ++----
 hw/sparc64/sun4u.c       |   7 +-
 hw/virtio/virtio-mem.c   |   6 +-
 system/memory.c          |  68 ++++++++++--------
 util/oslib-posix.c       |   7 +-
 util/oslib-win32.c       |   4 +-
 25 files changed, 234 insertions(+), 248 deletions(-)

-- 
2.41.0



             reply	other threads:[~2023-11-20 21:34 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-20 21:32 Philippe Mathieu-Daudé [this message]
2023-11-20 21:32 ` [PATCH-for-9.0 01/25] memory: Have memory_region_init_ram_flags_nomigrate() return a boolean Philippe Mathieu-Daudé
2023-11-21 12:03   ` Manos Pitsidianakis
2023-11-21 14:56   ` Peter Xu
2023-12-04  4:42   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 02/25] memory: Have memory_region_init_ram_nomigrate() handler " Philippe Mathieu-Daudé
2023-11-21 11:54   ` Manos Pitsidianakis
2023-12-04  4:44   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 03/25] memory: Have memory_region_init_rom_nomigrate() " Philippe Mathieu-Daudé
2023-11-21 12:10   ` Manos Pitsidianakis
2024-01-05 14:46     ` Philippe Mathieu-Daudé
2024-01-05 14:57       ` Peter Maydell
2024-01-05 17:13         ` Philippe Mathieu-Daudé
2023-12-04  4:45   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 04/25] memory: Simplify memory_region_init_rom_nomigrate() calls Philippe Mathieu-Daudé
2023-11-21 14:57   ` Peter Xu
2023-11-21 18:50   ` Richard Henderson
2023-11-21 18:52     ` Richard Henderson
2023-12-04  4:46   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 05/25] memory: Simplify memory_region_init_ram_from_fd() calls Philippe Mathieu-Daudé
2023-11-21 12:13   ` Manos Pitsidianakis
2023-12-04  4:46   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 06/25] memory: Have memory_region_init_ram() handler return a boolean Philippe Mathieu-Daudé
2023-11-21 14:58   ` Peter Xu
2023-12-04  4:47   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 07/25] memory: Have memory_region_init_rom() " Philippe Mathieu-Daudé
2023-11-21 12:15   ` Manos Pitsidianakis
2023-12-04  4:48   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 08/25] memory: Have memory_region_init_rom_device_nomigrate() " Philippe Mathieu-Daudé
2023-11-21 14:59   ` Peter Xu
2023-12-04  4:49   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 09/25] memory: Simplify memory_region_init_rom_device_nomigrate() calls Philippe Mathieu-Daudé
2023-11-21 15:00   ` Peter Xu
2023-12-04  4:50   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 10/25] memory: Have memory_region_init_rom_device() handler return a boolean Philippe Mathieu-Daudé
2023-11-21 15:00   ` Peter Xu
2023-12-04  4:51   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 11/25] memory: Have memory_region_init_resizeable_ram() " Philippe Mathieu-Daudé
2023-11-21 15:02   ` Peter Xu
2023-12-04  4:52   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 12/25] memory: Have memory_region_init_ram_from_file() handler " Philippe Mathieu-Daudé
2023-11-21 15:03   ` Peter Xu
2023-12-04  4:53   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 13/25] memory: Have memory_region_init_ram_from_fd() " Philippe Mathieu-Daudé
2023-11-21 15:04   ` Peter Xu
2023-12-04  4:54   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 14/25] backends: Use g_autofree in HostMemoryBackendClass::alloc() handlers Philippe Mathieu-Daudé
2023-11-22  7:09   ` Manos Pitsidianakis
2023-12-04  4:55   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 15/25] backends: Simplify host_memory_backend_memory_complete() Philippe Mathieu-Daudé
2023-11-22  7:11   ` Manos Pitsidianakis
2023-12-04  4:56   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 16/25] backends: Have HostMemoryBackendClass::alloc() handler return a boolean Philippe Mathieu-Daudé
2023-11-22  7:14   ` Manos Pitsidianakis
2023-12-04  4:57   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 17/25] backends: Reduce variable scope in host_memory_backend_memory_complete Philippe Mathieu-Daudé
2023-11-22  7:32   ` Manos Pitsidianakis
2023-12-04  4:58   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 18/25] util/oslib: Have qemu_prealloc_mem() handler return a boolean Philippe Mathieu-Daudé
2023-11-21 15:07   ` Peter Xu
2023-12-04  4:59   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 19/25] misc: Simplify qemu_prealloc_mem() calls Philippe Mathieu-Daudé
2023-11-22  7:38   ` Manos Pitsidianakis
2024-01-05 15:04     ` Philippe Mathieu-Daudé
2023-12-04  5:00   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 20/25] hw: Simplify memory_region_init_ram() calls Philippe Mathieu-Daudé
2023-11-22  7:42   ` Manos Pitsidianakis
2023-11-27  1:01   ` Andrew Jeffery
2023-12-04  5:00   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 21/25] hw/arm: Simplify memory_region_init_rom() calls Philippe Mathieu-Daudé
2023-11-22  7:43   ` Manos Pitsidianakis
2023-12-04  5:01   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 22/25] hw/sparc: Simplify memory_region_init_ram_nomigrate() calls Philippe Mathieu-Daudé
2023-11-21 11:31   ` Philippe Mathieu-Daudé
2023-12-04  5:02   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 23/25] hw/misc: Simplify memory_region_init_ram_from_fd() calls Philippe Mathieu-Daudé
2023-11-22  7:45   ` Manos Pitsidianakis
2023-12-04  5:02   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 24/25] hw/nvram: Simplify memory_region_init_rom_device() calls Philippe Mathieu-Daudé
2023-11-22  7:46   ` Manos Pitsidianakis
2023-12-04  5:03   ` Gavin Shan
2023-11-20 21:32 ` [PATCH-for-9.0 25/25] hw/pci-host/raven: Propagate error in raven_realize() Philippe Mathieu-Daudé
2023-11-22  7:46   ` Manos Pitsidianakis
2023-12-04  5:03   ` Gavin Shan

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=20231120213301.24349-1-philmd@linaro.org \
    --to=philmd@linaro.org \
    --cc=armbru@redhat.com \
    --cc=clg@kaod.org \
    --cc=david@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@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 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).