mirror of
https://github.com/qemu/qemu.git
synced 2024-12-01 07:43:35 +08:00
f37bc03623
During migration, save state entries are saved/loaded without a specific order - we just traverse the savevm_state.handlers list and do it one by one. This might not be enough. There are requirements that we need to load specific device's vmstate first before others. For example, VT-d IOMMU contains DMA address remapping information, which is required by all the PCI devices to do address translations. We need to make sure IOMMU's device state is loaded before the rest of the PCI devices, so that DMA address translation can work properly. This patch provide a VMStateDescription.priority value to allow specify the priority of the saved states. The loadvm operation will be done with those devices with higher vmsd priority. Before this patch, we are possibly achieving the ordering requirement by an assumption that the ordering will be the same with the ordering that objects are created. A better way is to mark it out explicitly in the VMStateDescription table, like what this patch does. Current ordering logic is still naive and slow, but after all that's not a critical path so IMO it's a workable solution for now. Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> |
||
---|---|---|
.. | ||
block.c | ||
colo-comm.c | ||
colo-failover.c | ||
colo.c | ||
exec.c | ||
fd.c | ||
Makefile.objs | ||
migration.c | ||
postcopy-ram.c | ||
qemu-file-channel.c | ||
qemu-file.c | ||
qjson.c | ||
ram.c | ||
rdma.c | ||
savevm.c | ||
socket.c | ||
tls.c | ||
trace-events | ||
vmstate.c | ||
xbzrle.c |