Messages in this thread | | | From | Linus Torvalds <> | Date | Mon, 28 Dec 2020 13:58:40 -0800 | Subject | Re: [PATCH 1/2] mm: Allow architectures to request 'old' entries when prefaulting |
| |
On Mon, Dec 28, 2020 at 10:47 AM Linus Torvalds <torvalds@linux-foundation.org> wrote: > > I personally think it's wrong to update vmf->pte at all. We should > just have a local 'ptep' pointer that we update as we walk along. But > that requires another change to the calling convention, namely to > "do_set_pte()".
Actually, I think we should not use do_set_pte() at all.
About half of do_set_pte() is about the FAULT_FLAG_WRITE case, which the fault-around code never has set (and would be wrong if it did).
So I think do_set_pte() should be made local to mm/memory.c, and the filemap_map_pages() code should do it's own simplified version that just does the non-writable case, and that just gets passed the address and the pte pointer.
At that point, there would no longer be any need to update the address/pte fields in the vmf struct, and in fact I think it could be made a "const" pointer in this cal chain.
This is all just from looking at the code, I haven't tried to write a patch to do this, so I might be missing some case.
Linus
| |