On Thu, Jan 20, 2022 at 06:39:01PM +0800, Hyman Huang wrote: > > It only runs once per second so it shouldn't bring a lot of differences, but > > I'm also wondering whether we should also turn that temporarily off too when > > dirtylimit is enabled - we can simply let it keep sleeping if dirtylimit is > > in > > service. > Does this work ok when dirtylimit and migration happens concurrently? > Migration may fetch the aged dirty bitmap info from slot if we turn reaper > thread off. As you metioned above, reaper thread only runs once per second. > Is it more suitable for not touching the reaper thread logic?
Yes I think it'll still work, as migration will do explicit sync/collect after each iteration. See kvm_log_sync_global(). In short, you shouldn't touch the rest of the kvm_dirty_ring_reap() callers, they'll always flush all the rings. But it'll be nicer if you will try it out. :) -- Peter Xu