[PATCH v2 0/7] migration/ram: Assert RAMBlock stability while streaming RAM

Akihiko Odaki <[email protected]>
Newsgroups org.kernel.vger.linux-edac,org.kernel.vger.kvm,org.nongnu.qemu-arm,org.nongnu.qemu-devel,org.nongnu.qemu-riscv
Message-ID <[email protected]>
RAM migration sends the RAMBlock list and sizes before transferring page
contents. The RAM code cannot cope with migratable RAMBlocks being
added, removed, renamed, made migratable/non-migratable, or resized
while that stream is active, because the destination has already parsed
the stream layout.

Add RAMBlock notifier checks so such changes are caught immediately.
Ignored RAMBlocks remain exempt because they are not represented in the
RAM migration stream.

Signed-off-by: Akihiko Odaki <[email protected]>
---
Changes in v2:
- Added patch "hw/nvram/fw_cfg: Remove acpi-mr-restore".
- Added patch "hw/nvram/fw_cfg: Avoid resizing RAM at runtime".
- Added patch "migration/ram: Fix ram_save_complete() return value".
- Link to v1: https://lore.kernel.org/qemu-devel/[email protected]

---
Akihiko Odaki (7):
      hw/nvram/fw_cfg: Remove acpi-mr-restore
      hw/nvram/fw_cfg: Avoid resizing RAM at runtime
      system/memory: Remove the resized callback
      system/physmem: Pass RAMBlock to RAMBlockNotifier callbacks
      system/physmem: Notify RAMBlock migratable and idstr changes
      migration/ram: Fix ram_save_complete() return value
      migration/ram: Assert RAMBlock stability while streaming RAM

 include/hw/core/loader.h       |   1 +
 include/hw/nvram/fw_cfg.h      |   5 +-
 include/migration/misc.h       |   2 +-
 include/system/memory.h        |   4 --
 include/system/ramblock.h      |   7 +--
 include/system/ramlist.h       |  24 ++++++----
 block/block-ram-registrar.c    |   8 ++--
 hw/acpi/ghes.c                 |   6 ++-
 hw/acpi/vmgenid.c              |   1 +
 hw/arm/virt-acpi-build.c       |   3 +-
 hw/core/loader.c               |  14 +++---
 hw/core/machine.c              |   1 -
 hw/core/numa.c                 |  54 +++++++++++++++++----
 hw/display/ramfb.c             |   2 +-
 hw/i386/acpi-build.c           |   3 +-
 hw/isa/lpc_ich9.c              |   2 +
 hw/loongarch/virt-acpi-build.c |   3 +-
 hw/misc/vmcoreinfo.c           |   3 +-
 hw/nvram/fw_cfg.c              |  80 ++++++++++++++++++-------------
 hw/riscv/virt-acpi-build.c     |   3 +-
 hw/xen/xen-mapcache.c          |   6 +--
 migration/ram.c                | 106 +++++++++++++++++++++++++++--------------
 system/memory.c                |   7 +--
 system/physmem.c               |  40 +++++++---------
 target/i386/nvmm/nvmm-all.c    |   4 +-
 target/i386/sev.c              |   8 ++--
 util/vfio-helpers.c            |   7 +--
 27 files changed, 247 insertions(+), 157 deletions(-)
---
base-commit: b83371668192a705b878e909c5ae9c1233cbd5fb
change-id: 20260606-ram-dcef14f001fb

Best regards,
--  
Akihiko Odaki <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.