On Wednesday, February 5, 2020 4:57 PM, David Hildenbrand wrote: > >> Yes, I agree with you. Yet, I am thinking about one > >> (unlikely?impossible?) scenario. Can you refresh my brain why that > >> cannot happen (IOW, why we don't have to wait for the host to process > >> the request)? > >> > >> 1. Guest allocates a page and sends it to the host. > >> 2. Shrinker gets active and releases that page again. > >> 3. Some user in the guest allocates and modifies that page. After > >> that, it is done using that page for the next hour. > >> 4. The host processes the request and clears the bit in the dirty bitmap. > >> 5. The guest is being migrated by the host. The modified page is not > >> being migrated. > > > > Whenever the guest modifies a page during migration, it will be > > captured by the dirty logging and the hypervisor will send the dirtied the > page in the following round. > > Please explain why the steps I outlined don't apply esp. in the last round. > Your general statement does not explain why this race can't happen. > The guest is stopped in the last round, thus no page will be modified at that time. Best, Wei