qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH-for-9.0 00/25] memory: Propagate Error* when possible
@ 2023-11-20 21:32 Philippe Mathieu-Daudé
  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é
                   ` (24 more replies)
  0 siblings, 25 replies; 84+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-11-20 21:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: David Hildenbrand, Peter Maydell, Michael S. Tsirkin, qemu-arm,
	Mark Cave-Ayland, Markus Armbruster, Paolo Bonzini, Igor Mammedov,
	qemu-ppc, Cédric Le Goater, Philippe Mathieu-Daudé,
	Peter Xu

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



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

end of thread, other threads:[~2024-01-05 17:14 UTC | newest]

Thread overview: 84+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-20 21:32 [PATCH-for-9.0 00/25] memory: Propagate Error* when possible Philippe Mathieu-Daudé
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

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).