Re: [RFC PATCH v2 9/9] mm: Introduce Copy-On-Write PTE table

From: Nadav Amit
Date: Thu Sep 29 2022 - 14:40:48 EST


On Sep 29, 2022, at 11:29 AM, Chih-En Lin <shiyn.lin@xxxxxxxxx> wrote:

> That case could be caught in copy_pte_range(): in case we'd have to allocate
>> a page via page_copy_prealloc(), we'd have to fall back to the ordinary
>> "separate page table for the child" way of doing things.
>>
>> But that looks doable to me.
>
> Sounds good. :)

Chih-En, I admit I did not fully read the entire correspondence and got deep
into all the details.

I would note, however, that there are several additional components that I
did not see (and perhaps missed) in your patches. Basically, there are many
page-table manipulations that are done not through the page-fault handler or
reclamation mechanisms. I did not see any of them being addressed.

So if/when you send a new version, please have a look at mprotect(),
madvise(), soft-dirty, userfaultfd and THP. In these cases, I presume, you
would have to COW-break (aka COW-unshare) the page-tables.