On Thu, 16 Apr 2020 07:20:48 -0700 Dave Hansen <dave.hansen@xxxxxxxxx> wrote: > On 4/16/20 5:15 AM, Claudio Imbrenda wrote: > >> I assumed that this was all anonymous-only so it's always dirty > >> before writeback starts. > > it could also be mmapped > > Let's say you have a mmap()'d ramfs file. Another process calls which > doesn't have it mapped calls sys_write() and writes to the file. > > This means that host host has to write to the physical page and must > do arch_make_page_accessible() in the sys_write() path somewhere. > > There is a get_user_pages() in that path, but it's on the _source_ > buffer, not the ramfs page because the ramfs page is not mapped. > There's also no __test_set_page_writeback() because you can't write > back ramfs. > > Where is the arch_make_page_accessible() in this case on the ramfs > page? it's in the fault handler for the exception the CPU will get when attempting to write the data to the protected page