mbox series

[v5,0/4] page table check fixes and cleanups

Message ID 20220131203249.2832273-1-pasha.tatashin@soleen.com (mailing list archive)
Headers show
Series page table check fixes and cleanups | expand

Message

Pasha Tatashin Jan. 31, 2022, 8:32 p.m. UTC
From: Pasha Tatashin <tatashin@google.com>

Changelog:
v5:	- Renamed page_table_check_pmd_clear_full() ->
	  page_table_check_clear_pte_range().
	  Removed call to __page_table_check_pmd_clear() from this
	  function.
	- Added Acks.
v4:	- Addressed review comments from David Rientjes
	- Added Acks.
v3:	- Resolved a regression introduced in previous version, where
	  page collapse in khugepaged would cause crash on boot.
	- Addressed comments from Anshuman Khandual regarding commit
	  log.
v2:	- Addressed simplification comments from Wei Xu
	- Added Review-by/Tested-by's from Zi Yan and Wei Xu


Two fixes:

  mm/debug_vm_pgtable: remove pte entry from the page table
	- remove a pte entry from the page table at the end of
	  debug_vm_pgtable pte test

  mm/khugepaged: unify collapse pmd clear, flush and free
  mm/page_table_check: check entries at pmd levels
	- check pmd level in page_table_check for PTE regular entries
	  prior to freeing.
	  repro.c: https://gist.github.com/soleen/fdcd501d5df103976245fe84e9535087
	  config: https://gist.github.com/soleen/8a56f923c2fea9ce9c75b4e2517d4162
	  qemu_script: https://gist.github.com/soleen/f4be4795826b7ab1a51ae659582e179c
	  base image:
	  https://storage.googleapis.com/syzkaller/wheezy.img
	  https://storage.googleapis.com/syzkaller/wheezy.img.key

Small cleanup:
  mm/page_table_check: use unsigned long for page counters and cleanup

Previous versions:
v1: https://lore.kernel.org/all/20220120042513.1648831-1-pasha.tatashin@soleen.com
v2: https://lore.kernel.org/all/20220120191250.2671557-1-pasha.tatashin@soleen.com
v3: https://lore.kernel.org/all/20220126060514.1574935-1-pasha.tatashin@soleen.com
v4: https://lore.kernel.org/all/20220126183637.1840960-1-pasha.tatashin@soleen.com

Pasha Tatashin (4):
  mm/debug_vm_pgtable: remove pte entry from the page table
  mm/page_table_check: use unsigned long for page counters and cleanup
  mm/khugepaged: unify collapse pmd clear, flush and free
  mm/page_table_check: check entries at pmd levels

 include/linux/page_table_check.h | 19 +++++++++++
 mm/debug_vm_pgtable.c            |  2 ++
 mm/khugepaged.c                  | 37 +++++++++++----------
 mm/page_table_check.c            | 55 ++++++++++++++++----------------
 4 files changed, 69 insertions(+), 44 deletions(-)