On Wed, Feb 5, 2020 at 1:00 AM Wang, Wei W wrote: > 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. > Isn't the hint only useful during the *first* round? After the first round if a page becomes free then we need to update the copy at the migration destination, so freeing a page that previously had contents should mark it dirty. > > Best, > Wei >