* Denis Plotnikov (dplotni...@virtuozzo.com) wrote: > Currently where is no way to make a vm snapshot without pausing a vm > for the whole time until the snapshot is done. So, the problem is > the vm downtime on snapshoting. The downtime value depends on the vmstate > size, the major part of which is RAM and the disk performance which is > used for the snapshot saving. > > The series propose a way to reduce the vm snapshot downtime. This is done > by saving RAM, the major part of vmstate, in the background when the vm > is running. > > The background snapshot uses linux UFFD write-protected mode for memory > page access intercepting. UFFD write-protected mode was added to the linux > v5.7. > If UFFD write-protected mode isn't available the background snapshot rejects > to > run.
Hi Denis, I see Peter has responded to most of your patches, but just anted to say thank you; but also to cc in a couple of other people; David Hildenbrand (who is interested in unusual memory stuff) and zhanghailiang who works on COLO which also does snapshotting and had long wanted to use WP. 2/4 was a bit big for my liking; please try and do it in smaller chunks! Dave > How to use: > 1. enable background snapshot capability > virsh qemu-monitor-command vm --hmp migrate_set_capability > background-snapshot on > > 2. stop the vm > virsh qemu-monitor-command vm --hmp stop > > 3. Start the external migration to a file > virsh qemu-monitor-command cent78-bs --hmp migrate exec:'cat > ./vm_state' > > 4. Wait for the migration finish and check that the migration has completed > state. > > Denis Plotnikov (4): > bitops: add some atomic versions of bitmap operations > migration: add background snapshot capability > migration: add background snapshot > background snapshot: add trace events for page fault processing > > qapi/migration.json | 7 +- > include/exec/ramblock.h | 8 + > include/exec/ramlist.h | 2 + > include/qemu/bitops.h | 25 ++ > migration/migration.h | 1 + > migration/ram.h | 19 +- > migration/savevm.h | 3 + > migration/migration.c | 142 +++++++++- > migration/ram.c | 582 ++++++++++++++++++++++++++++++++++++++-- > migration/savevm.c | 1 - > migration/trace-events | 2 + > 11 files changed, 771 insertions(+), 21 deletions(-) > > -- > 2.17.0 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK