On Fri, Aug 25, 2023 at 10:35:24AM +0100, Shameer Kolothum wrote: > We only set DBM if the page is writeable (S2AP[1] == 1). But once migration > starts, CLEAR_LOG path will write protect the pages (S2AP[1] = 0) and there > isn't an easy way to differentiate the writeable pages that gets write > protected from read-only pages as we only have S2AP[1] bit to check. Don't we have enough bits without an additional one? writeable: DBM == 1 || S2AP[1] == 1 clean: S2AP[1] == 0 dirty: S2AP[1] == 1 (irrespective of DBM) read-only: DBM == 0 && S2AP[1] == 0 For S1 we use a software dirty bit as well to track read-only dirty mappings but I don't think it is necessary for S2 since KVM unmaps the PTE when changing the VMM permission. -- Catalin