On Wed, Mar 11, 2020 at 15:15:03 -0500, Eric Blake wrote: > On 3/11/20 7:55 AM, Peter Krempa wrote: > > Starting a commit job will require disabling bitmaps in the base image > > so that they are not dirtied by the commit job. We need to store a list > > of the bitmaps so that we can later re-enable them. > > I think I get why you don't want them further dirtied, but does it really > matter? Well it feels to be the right thing to do in terms of the semantics that were established for checkpoints. To refresh, creating a new checkpoint disables previous bitmaps to "optimize" the number of bytes written in the bitmap. On that terms I think we should make sure that the bitmaps are populated correctly. Given qemu's todays features and the fact that bitmaps don't thake that much space on disk I'd probably nowadays go for a checkpoint always creating a new bitmap and not disabling older ones. In addition we could stop populating snapshots with bitmaps altogether as we can get the bitmaps from an allocation map now. With the above a lot of the operations could be greatly simplified. In the end we can rework all of this as the feature is still really experimental, but for the current situation with other parts of the incremental backup code we should do this and since we decided to go the hard way we should not cut corners here.