mm: Add write-protect and clean utilities for address space ranges
authorThomas Hellstrom <thellstrom@vmware.com>
Tue, 19 Mar 2019 12:12:30 +0000 (13:12 +0100)
committerThomas Hellstrom <thellstrom@vmware.com>
Wed, 6 Nov 2019 12:03:36 +0000 (13:03 +0100)
commitc5acad84cf1e33ca1a50984952e1c5b2caa0e13f
treef6c73731de9ed646f4b0a4dd8a931439bb0a33f7
parentecaad8aca20432fa60821282d8ff479629c9f7b9
mm: Add write-protect and clean utilities for address space ranges

Add two utilities to 1) write-protect and 2) clean all ptes pointing into
a range of an address space.
The utilities are intended to aid in tracking dirty pages (either
driver-allocated system memory or pci device memory).
The write-protect utility should be used in conjunction with
page_mkwrite() and pfn_mkwrite() to trigger write page-faults on page
accesses. Typically one would want to use this on sparse accesses into
large memory regions. The clean utility should be used to utilize
hardware dirtying functionality and avoid the overhead of page-faults,
typically on large accesses into small memory regions.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@surriel.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Huang Ying <ying.huang@intel.com>
Cc: Jérôme Glisse <jglisse@redhat.com>
Cc: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Acked-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/mm.h
mm/Kconfig
mm/Makefile
mm/mapping_dirty_helpers.c [new file with mode: 0644]