Re: [PATCH v2 0/4] Avoid live-lock in fault-in+uaccess loops with sub-page faults

From: Linus Torvalds
Date: Fri Dec 03 2021 - 13:25:41 EST


On Fri, Dec 3, 2021 at 10:12 AM Andreas Gruenbacher <agruenba@xxxxxxxxxx> wrote:
>
> It happens when you mmap a file and write the mmapped region to
> another file, for example.

Do you actually have such loads? Nobody should use mmap() for
single-access file copy purposes. It's slower than just doing the copy
exactly due to page fault overhead.

In other words, you seem to be worrying about the performance of a
load that is _explicitly_ badly written. You should be fixing the
application, not making the kernel do stupid things.

Also, it's worth noting that that situation should be caught by the
page-in code, which will map multiple pages in one go
(do_fault_around() - for when the pages are cached), and do the
readahead logic (filemap_fault() - for when the pages aren't in the
page cache).

Both of which are a lot more important than the "synchronously fault
in pages one at a time".

Linus