Messages in this thread | | | Subject | Re: [PATCH v2 00/20] Introduce the TDP MMU | From | Paolo Bonzini <> | Date | Tue, 20 Oct 2020 10:07:25 +0200 |
| |
On 19/10/20 20:15, Ben Gardon wrote: > When getting the dirty log, we > follow the following steps: > 1. Atomically get and clear an unsigned long of the dirty bitmap > 2. For each GFN in the range of pages covered by the unsigned long mask: > 3. Clear the dirty or writable bit on the SPTE > 4. Copy the mask of dirty pages to be returned to userspace > > If we mark the page as dirty in the dirty bitmap in step 3, we'll > report the page as dirty twice - once in this dirty log call, and > again in the next one. This can lead to unexpected behavior: > 1. Pause all vCPUs > 2. Get the dirty log <--- Returns all pages dirtied before the vCPUs were paused > 3. Get the dirty log again <--- Unexpectedly returns a non-zero number > of dirty pages even though no pages were actually dirtied
Got it, that might also fail the dirty_log_test. Thanks!
Paolo
| |