syzkaller identified that khugepaged, operating on guest_memfd memory, could cause guest_memfd folios to get collapsed, leading to a WARNing during fault [1].
Add selftest to guard against similar regressions. Changes in v2: + Found get_trans_hugepagesz(), which I should have used instead of adding getpmdsize() + Extended tools/testing/selftests/kvm/include/kvm_syscalls.h to add kvm_madvise() + Removed the magic constant address and explained alignment requirements in comments + Refactored gmem_test() macro to expose __gmem_test(), which allows custom sized guest_memfds for tests. Sean, I didn't add the gmem_test_huge_pmd() since I'm guessing a test requiring a pmd_sized guest_memfd would probably be once-off. PATCH v1 [3] was sent in reply to the fix [2]. [1] https://syzkaller.appspot.com/bug?extid=33a04338019ac7e43a44 [2] https://lore.kernel.org/all/[email protected]/ [3] https://lore.kernel.org/all/[email protected]/ Ackerley Tng (2): KVM: selftests: Wrap madvise() to assert success KVM: selftests: Test MADV_COLLAPSE on guest_memfd .../testing/selftests/kvm/guest_memfd_test.c | 70 ++++++++++++++++++- .../selftests/kvm/include/kvm_syscalls.h | 1 + 2 files changed, 68 insertions(+), 3 deletions(-) base-commit: a95f71ad3e2e224277508e006580c333d0a5fe36 prerequisite-patch-id: e001eecc9215dc0ed28546936f86a5a09e57141e -- 2.53.0.345.g96ddfc5eaa-goog

