These patches apply on top of version 2 of: "do savevm/migration save/load via Visitor interface"
and can also be obtained from: git://repo.or.cz/qemu/mdroth.git migration-visitor-conversions-set1-v1 OVERVIEW These patches are the first conversions beyond the catch-all vmstate conversion in the initial visitor-based save/load series. They were chosen since they were users of common save/load interfaces in msix.c, pci.c, and virtio.c which have been converted to accepting a Visitor in place of QEMUFile as part of this series. The slirp conversion is a carry-over from the initial RFC with some fix-ups. The conversions are not pretty in a lot of cases, but the goal is to decouple save/load from QEMUFile so we can rework things in the context of Visitors and a new migration protocol. There are roughly 19 qemufile-based save/load users remaining, 5 of which are for CPUState serialization, which Juan is already porting to vmstate. I plan to follow up shortly with the remaining x86-relevant users like apic and i8254, which will put us about halfway there, with the remainder being: hw/arm_gic.c hw/tsc210x.c hw/ssd0323.c hw/stellaris_enet.c hw/sun4u.c hw/syborg_interrupt.c hw/pxa2xx_mmci.c hw/syborg_fb.c hw/ssi-sd.c hw/tsc2005.c hw/pxa2xx.c hw/rc4030.c Testing will probably be the gating factor for these. TESTING There's a lot of churn here, but the conversions are fairly trivial for the most part, and have been tested using a mostly-automated test framework that involves tracing all visitor-based and qemufile-based serialization and checking for symmetry between pre-converted/post-converted qemu instances. Test code and procedure is documented at: http://wiki.qemu.org/Features/Migration/Visitor#Testing Michael Roth (13): slirp: convert save/load function to visitor interface ivshmem: convert save/load to visitor virtio-pci: convert save/load to visitors msix: convert save/load to visitors (including interfaces) openpic: convert save/load to visitors i440fx: convert save/load to visitors pci: convert pci_device_(save|load) interfaces to accept Visitors virtio: convert common virtio save/load to visitors virtio-balloon: convert save/load to visitors virtio-blk: convert save/load to visitors virtio-net: convert save/load to visitors virtio-serial: convert save/load to visitors virtio: convert virtio_save/virtio_load interfaces to accept Visitors hw/ivshmem.c | 52 +++++-- hw/msix.c | 37 ++++-- hw/msix.h | 4 +- hw/openpic.c | 192 +++++++++++++++++-------- hw/pci.c | 9 +- hw/pci.h | 6 +- hw/piix_pci.c | 27 +++- hw/virtio-balloon.c | 36 ++++- hw/virtio-blk.c | 80 +++++++++-- hw/virtio-net.c | 166 ++++++++++++++++------- hw/virtio-pci.c | 75 ++++++++--- hw/virtio-serial-bus.c | 130 ++++++++++++----- hw/virtio.c | 145 ++++++++++++++------ hw/virtio.h | 14 +- slirp/slirp.c | 366 ++++++++++++++++++++++++++++-------------------- 15 files changed, 918 insertions(+), 421 deletions(-) -- 1.7.4.1