Skip to content

ruvm 0.4.5

Choose a tag to compare

@tamnd tamnd released this 08 Oct 07:09
· 161 commits to main since this release
v0.4.5
1ae94e5

This patch brings in most of M5, the migration modes beyond plain precopy, and moves M6 along with a riscv64 host backend and the ITS on arm virt.

For M5: ruvm now does postcopy, multifd with no compression or zlib, XBZRLE, mapped-ram over the file channel with direct-io, savevm and loadvm to qcow2, background snapshots, and the cpr-reboot and cpr-transfer modes, all interoperating with QEMU 11.1 (#178, #179, #180). Every mode passed hops between QEMU and ruvm with a guest that checksums its memory, with no bad output. query-migrate reports downtime, expected-downtime and the byte counters the way QEMU does, -incoming takes JSON and keyval channels, and -machine memory-backend= works on x86. -accel kvm,dirty-ring-size= is accepted but ruvm doesn't collect from the ring yet. Postcopy recovery, zstd and the other multifd compressors, TLS and -loadvm are not in yet.

For M6: there is a riscv64 host backend for the JIT, covering RV64GC, Zba, Zbb, Zbs, Zicond and RVV (#173, #176). Under qemu-riscv64, a riscv virt guest and an x86 q35 guest both boot Linux to a shell on it. arm virt has the GICv3 ITS and LPIs, with msi-map on the PCIe node, the second redistributor region for more than 123 CPUs, and the msi= and its= options (#175). A Debian guest takes its virtio-pci interrupts through the ITS with the same numbers as on QEMU. On riscv virt, virtio-blk-pci now gets one queue per vCPU as on QEMU (#174).

Also, two files that the pinned rustfmt formats differently are now formatted (#177).

What's Changed

  • jit-riscv64: a riscv64 host backend for the JIT by @tamnd in #173
  • system: one virtio-blk-pci queue per vCPU on riscv virt by @tamnd in #174
  • hw-intc: the GICv3 ITS and LPIs, with msi-map on arm virt by @tamnd in #175
  • jit-riscv64: RVV codegen, and guests boot on a riscv64 host by @tamnd in #176
  • Format decode and softfloat with the pinned rustfmt by @tamnd in #177
  • sys, mem, hostmem: userfaultfd, direct I/O and shared RAM for migration by @tamnd in #178
  • block: snapshots across every drive, for savevm and loadvm by @tamnd in #179
  • migration: postcopy, multifd, XBZRLE, mapped-ram, snapshots and CPR by @tamnd in #180
  • Release 0.4.5 by @tamnd in #181

Full Changelog: v0.4.4...v0.4.5