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

From: David Stevens
Date: Fri Feb 17 2023 - 03:55:12 EST


From: David Stevens <stevensd@xxxxxxxxxxxx>

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

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 | 263 ++++++++++++++++-------------
2 files changed, 144 insertions(+), 122 deletions(-)

--
2.39.2.637.g21b0678d19-goog