On Wed, Sep 18, 2019 at 02:59:08PM +0200, Thomas Hellström (VMware) wrote:
From: Thomas Hellstrom thellstrom@vmware.com
Add two utilities to a) write-protect and b) 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.
The added file "as_dirty_helpers.c" is initially listed as maintained by VMware under our DRM driver. If somebody would like it elsewhere, that's of course no problem.
After quick glance, it looks a lot as rmap code duplication. Why not extend rmap_walk() interface instead to cover range of pages?
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: Souptick Joarder jrdr.linux@gmail.com Cc: "Jérôme Glisse" jglisse@redhat.com Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org
Signed-off-by: Thomas Hellstrom thellstrom@vmware.com Reviewed-by: Ralph Campbell rcampbell@nvidia.com #v1
MAINTAINERS | 1 + include/linux/mm.h | 13 +- mm/Kconfig | 3 + mm/Makefile | 1 + mm/as_dirty_helpers.c | 392 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 409 insertions(+), 1 deletion(-) create mode 100644 mm/as_dirty_helpers.c
diff --git a/MAINTAINERS b/MAINTAINERS index c2d975da561f..b596c7cf4a85 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -5287,6 +5287,7 @@ T: git git://people.freedesktop.org/~thomash/linux S: Supported F: drivers/gpu/drm/vmwgfx/ F: include/uapi/drm/vmwgfx_drm.h +F: mm/as_dirty_helpers.c
Emm.. No. Core MM functinality cannot belong to random driver.