mm: Allow the [page|pfn]_mkwrite callbacks to drop the mmap_sem
authorThomas Hellstrom <thellstrom@vmware.com>
Fri, 12 Oct 2018 14:58:12 +0000 (16:58 +0200)
committerThomas Hellstrom <thellstrom@vmware.com>
Tue, 18 Jun 2019 13:19:33 +0000 (15:19 +0200)
commitc9e5f41f732057097cd66ab7b01e7f7a2ff6c795
tree9ed5853df4a1ce6985981bf23fedb55d9a0145de
parent4251fa5fc3bbe3e1df99f60a738d367373ee335f
mm: Allow the [page|pfn]_mkwrite callbacks to drop the mmap_sem

Driver fault callbacks are allowed to drop the mmap_sem when expecting
long hardware waits to avoid blocking other mm users. Allow the mkwrite
callbacks to do the same by returning early on VM_FAULT_RETRY.

In particular we want to be able to drop the mmap_sem when waiting for
a reservation object lock on a GPU buffer object. These locks may be
held while waiting for the GPU.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@surriel.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Huang Ying <ying.huang@intel.com>
Cc: Souptick Joarder <jrdr.linux@gmail.com>
Cc: "Jérôme Glisse" <jglisse@redhat.com>
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Ralph Campbell <rcampbell@nvidia.com>
mm/memory.c