OSDN Git Service

mm/gup: Handle page split race more efficiently
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 7 Jan 2022 19:04:55 +0000 (14:04 -0500)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 21 Mar 2022 16:56:35 +0000 (12:56 -0400)
commit59409373f60a0a493fe2a1b85dc8c6299c4fef37
tree359beb8af1ae79fce424d7a2cb6be59280d700dd
parent4c65422901154766e5cee17875ed680366a4a141
mm/gup: Handle page split race more efficiently

If we hit the page split race, the current code returns NULL which will
presumably trigger a retry under the mmap_lock.  This isn't necessary;
we can just retry the compound_head() lookup.  This is a very minor
optimisation of an unlikely path, but conceptually it matches (eg)
the page cache RCU-protected lookup.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: William Kucharski <william.kucharski@oracle.com>
mm/gup.c