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

Linus Torvalds torvalds at linux-foundation.org
Fri Dec 3 10:25:17 PST 2021


On Fri, Dec 3, 2021 at 10:12 AM Andreas Gruenbacher <agruenba at redhat.com> 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



More information about the linux-arm-kernel mailing list