On Thu, Jun 03, 2021 at 11:15:18AM -0400, Gabriel Krisman Bertazi wrote:
This introduces three tests:
- Sanity check soft dirty basic semantics: allocate area, clean, dirty,
check if the SD bit flipped.
Check VMA reuse: validate the VM_SOFTDIRTY usage
Check soft-dirty on huge pages
This was motivated by Will Deacon's fix commit 912efa17e512 ("mm: proc: Invalidate TLB after clearing soft-dirty page state"). I was tracking the same issue that he fixed, and this test would have caught it.
-- Changes since V1:
- Fix last minute build break with page_size
tools/testing/selftests/Makefile | 1 + tools/testing/selftests/soft-dirty/.gitignore | 1 + tools/testing/selftests/soft-dirty/Makefile | 9 + .../testing/selftests/soft-dirty/soft-dirty.c | 254 ++++++++++++++++++ 4 files changed, 265 insertions(+) create mode 100644 tools/testing/selftests/soft-dirty/.gitignore create mode 100644 tools/testing/selftests/soft-dirty/Makefile create mode 100644 tools/testing/selftests/soft-dirty/soft-dirty.c
Although I think adding a test for this is great (and I certainly wouldn't want to get in the way of that; quite the opposite), I notice that we already have test_softdirty() in selftests/vm/madv_populate.c. Would we be better off extending that test instead of introducing another one?