Re: [PATCH v2 4/4] mm/gup: remove get_user_pages_locked()

From: Jason Gunthorpe
Date: Tue Feb 01 2022 - 07:31:41 EST


On Tue, Feb 01, 2022 at 02:11:08AM -0800, John Hubbard wrote:
> There is only one caller of get_user_pages_locked(). The purpose of
> get_user_pages_locked() is to allow for unlocking the mmap_lock when
> reading a page from the disk during a page fault (hidden behind
> VM_FAULT_RETRY). The idea is to reduce contention on the heavily-used
> mmap_lock. (Thanks to Jan Kara for clearly pointing that out, and in
> fact I've used some of his wording here.)
>
> However, it is unlikely for lookup_node() to take a page fault. With
> that in mind, change over to calling get_user_pages_fast(). This
> simplifies the code, runs a little faster in the expected case, and
> allows removing get_user_pages_locked() entirely.
>
> Cc: Jan Kara <jack@xxxxxxx>
> Suggested-by: Jason Gunthorpe <jgg@xxxxxxxx>
> Signed-off-by: John Hubbard <jhubbard@xxxxxxxxxx>
> ---
> include/linux/mm.h | 2 --
> mm/gup.c | 59 ----------------------------------------------
> mm/mempolicy.c | 21 +++++++----------
> 3 files changed, 9 insertions(+), 73 deletions(-)

Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx>

Jason