[PATCH v5 0/3] mm/khugepaged: fix khugepaged+shmem races

From: David Stevens
Date: Tue Mar 07 2023 - 00:20:57 EST


From: David Stevens <stevensd@xxxxxxxxxxxx>

Fix two races in khugepaged+shmem that cause issues with userfaultfd and
lseek, respectively.

v4 -> v5:
- Rebase on mm-unstable (9caa15b8a499)
- Gather acks
v3 -> v4:
- Base changes on mm-everything (fba720cb4dc0)
- Add patch to refactor error handling control flow in collapse_file
- Rebase userfaultfd patch with no significant logic changes
- Different approach for fixing lseek race
v2 -> v3:
- Use XA_RETRY_ENTRY to synchronize with reads from the page cache
under the RCU read lock in userfaultfd fix
- Add patch to fix lseek race
v1 -> v2:
- Different approach for userfaultfd fix

David Stevens (3):
mm/khugepaged: refactor collapse_file control flow
mm/khugepaged: skip shmem with userfaultfd
mm/khugepaged: maintain page cache uptodate flag

include/trace/events/huge_memory.h | 3 +-
mm/khugepaged.c | 259 ++++++++++++++++-------------
2 files changed, 142 insertions(+), 120 deletions(-)

--
2.40.0.rc0.216.gc4246ad0f0-goog