Re: [PATCH 0/6] Handle more faults under the VMA lock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Sep 26, 2023 at 10:25 PM Matthew Wilcox (Oracle)
<willy@xxxxxxxxxxxxx> wrote:
>
> At this point, we're handling the majority of file-backed page faults
> under the VMA lock, using the ->map_pages entry point.  This patch set
> attempts to expand that for the following siutations:
>
>  - We have to do a read.  This could be because we've hit the point in
>    the readahead window where we need to kick off the next readahead,
>    or because the page is simply not present in cache.
>  - We're handling a write fault.  Most applications don't do I/O by writes
>    to shared mmaps for very good reasons, but some do, and it'd be nice
>    to not make that slow unnecessarily.
>  - We're doing a COW of a private mapping (both PTE already present
>    and PTE not-present).  These are two different codepaths and I handle
>    both of them in this patch set.
>
> There is no support in this patch set for drivers to mark themselves
> as being VMA lock friendly; they could implement the ->map_pages
> vm_operation, but if they do, they would be the first.  This is probably
> something we want to change at some point in the future, and I've marked
> where to make that change in the code.
>
> Suren, would you mind dropping this into your benchmarking setup and
> seeing if these relatively minor additions make a difference?

Definitely. Thanks for doing this! I'll report once I have some
numbers but first I need to review the patches to understand which
benchmarks could show the benefit.

>
> Matthew Wilcox (Oracle) (6):
>   mm: Make lock_folio_maybe_drop_mmap() VMA lock aware
>   mm: Call wp_page_copy() under the VMA lock
>   mm: Handle shared faults under the VMA lock
>   mm: Handle COW faults under the VMA lock
>   mm: Handle read faults under the VMA lock
>   mm: Handle write faults to RO pages under the VMA lock
>
>  mm/filemap.c | 13 ++++----
>  mm/memory.c  | 93 ++++++++++++++++++++++++++++++++--------------------
>  2 files changed, 65 insertions(+), 41 deletions(-)
>
> --
> 2.40.1
>





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux