Skip to content

RFC RAM migration overhaul

Alex Williamson kvm qemu-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest6 patches 40 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6qemu_ram_alloc: Remove duplicate codeexec.c+10 -271 reply
2/6ram_blocks: Convert to a QLISTarch_init.c cpu-all.h exec.c+49 -657 replies
3/6RAMBlock: Add a name fieldcpu-all.h cpu-common.h exec.c +5 more+24 -1428 replies
4/6Remove uses of ram.last_offset (aka last_ram_offset)arch_init.c cpu-all.h exec.c+30 -130 replies
5/6savevm: Migrate RAM based on name/offsetarch_init.c vl.c+93 -124 replies
6/6savevm: Use RAM blocks for basis of migrationarch_init.c+42 -250 replies

Reviews trailers per patch

2 of 6 patches have a Reviewed-by or Acked-by.

PatchChris Wright
1/6A-b
2/6A-b
3/6
4/6
5/6
6/6

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [RFC PATCH 0/6] RAM migration overhaul

As we discussed at the KVM developer call this morning, there are a number of issues with how we migrate RAM in the presence of hotplug, particularly:

- RAM allocated on the source may not match the target
- Abiguity of ram_addr_t between source and target
- Inability to remove RAM
- etc...

This series is a start at overhauling the infrastructure and at least addresses the first two issues above. I could use some help working on the freeing part, but I think this provides a solid basis for that.

I've only addressed the qemu-kvm/x86 bits, but the impact to other archs and drivers is simply to add a unique name field when calling qemu_ram_map/alloc().

Let me know what you think. Thanks,

Alex

---

Alex Williamson (6):
savevm: Use RAM blocks for basis of migration
savevm: Migrate RAM based on name/offset Remove uses of ram.last_offset (aka last_ram_offset)
RAMBlock: Add a name field
ram_blocks: Convert to a QLIST
qemu_ram_alloc: Remove duplicate code

 arch_init.c            |  161 ++++++++++++++++++++++++++++++++++++++++--------
 cpu-all.h              |   28 ++++++--
 cpu-common.h           |    4 +
 exec.c                 |  126 ++++++++++++++------------------------
 hw/device-assignment.c |    8 ++
 hw/pc.c                |    8 +-
 hw/pci.c               |    5 +
 hw/vga.c               |    2 -
 hw/vmware_vga.c        |    2 -
 vl.c                   |    2 -
 10 files changed, 219 insertions(+), 127 deletions(-)