Re: [PATCH v2 12/39] x86/mm: Update ptep_set_wrprotect() and pmdp_set_wrprotect() for transition from _PAGE_DIRTY to _PAGE_COW

From: Nadav Amit
Date: Mon Oct 03 2022 - 19:21:30 EST


On Oct 3, 2022, at 4:17 PM, Nadav Amit <nadav.amit@xxxxxxxxx> wrote:

> On Oct 3, 2022, at 3:28 PM, Edgecombe, Rick P <rick.p.edgecombe@xxxxxxxxx> wrote:
>
>> On Mon, 2022-10-03 at 11:11 -0700, Nadav Amit wrote:
>>> Did you have a look at ptep_set_access_flags() and friends and
>>> checked they
>>> do not need to be changed too?
>>
>> ptep_set_access_flags() doesn't actually set any additional dirty bits
>> on x86, so I think it's ok.
>
> Are you sure about that? (lost my confidence today so I am hesitant).
>
> Looking on insert_pfn(), I see:
>
> entry = maybe_mkwrite(pte_mkdirty(entry), vma);
> if (ptep_set_access_flags(vma, addr, pte, entry, 1)) ...
>
> This appears to set the dirty bit while potentially leaving the write-bit
> clear. This is the scenario you want to avoid, no?

No. I am not paying attention. Ignore.