Skip to content
  • Jérôme Glisse's avatar
    d87f055b
    mm/mmu_notifier: contextual information for event enums · d87f055b
    Jérôme Glisse authored
    CPU page table update can happens for many reasons, not only as a result
    of a syscall (munmap(), mprotect(), mremap(), madvise(), ...) but also as
    a result of kernel activities (memory compression, reclaim, migration,
    ...).
    
    This patch introduce a set of enums that can be associated with each of
    the events triggering a mmu notifier.  Latter patches take advantages of
    those enum values.
    
        - UNMAP: munmap() or mremap()
        - CLEAR: page table is cleared (migration, compaction, reclaim, ...)
        - PROTECTION_VMA: change in access protections for the range
        - PROTECTION_PAGE: change in access protections for page in the range
        - SOFT_DIRTY: soft dirtyness tracking
    
    Being able to identify munmap() and mremap() from other reasons why the
    page table is cleared is important to allow user of mmu notifier to update
    their own internal tracking structure accordingly (on munmap or mremap it
    is not longer needed to track range of virtual address as it becomes
    invalid).
    
    Link: http://lkml.kernel.org/r/20190326164747.24405-5-jglisse@redhat.com
    
    
    Signed-off-by: default avatarJérôme Glisse <jglisse@redhat.com>
    Reviewed-by: default avatarRalph Campbell <rcampbell@nvidia.com>
    Reviewed-by: default avatarIra Weiny <ira.weiny@intel.com>
    Cc: Christian König <christian.koenig@amd.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Peter Xu <peterx@redhat.com>
    Cc: Felix Kuehling <Felix.Kuehling@amd.com>
    Cc: Jason Gunthorpe <jgg@mellanox.com>
    Cc: Ross Zwisler <zwisler@kernel.org>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krcmar <rkrcmar@redhat.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Christian Koenig <christian.koenig@amd.com>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    d87f055b
    mm/mmu_notifier: contextual information for event enums
    Jérôme Glisse authored
    CPU page table update can happens for many reasons, not only as a result
    of a syscall (munmap(), mprotect(), mremap(), madvise(), ...) but also as
    a result of kernel activities (memory compression, reclaim, migration,
    ...).
    
    This patch introduce a set of enums that can be associated with each of
    the events triggering a mmu notifier.  Latter patches take advantages of
    those enum values.
    
        - UNMAP: munmap() or mremap()
        - CLEAR: page table is cleared (migration, compaction, reclaim, ...)
        - PROTECTION_VMA: change in access protections for the range
        - PROTECTION_PAGE: change in access protections for page in the range
        - SOFT_DIRTY: soft dirtyness tracking
    
    Being able to identify munmap() and mremap() from other reasons why the
    page table is cleared is important to allow user of mmu notifier to update
    their own internal tracking structure accordingly (on munmap or mremap it
    is not longer needed to track range of virtual address as it becomes
    invalid).
    
    Link: http://lkml.kernel.org/r/20190326164747.24405-5-jglisse@redhat.com
    
    
    Signed-off-by: default avatarJérôme Glisse <jglisse@redhat.com>
    Reviewed-by: default avatarRalph Campbell <rcampbell@nvidia.com>
    Reviewed-by: default avatarIra Weiny <ira.weiny@intel.com>
    Cc: Christian König <christian.koenig@amd.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Peter Xu <peterx@redhat.com>
    Cc: Felix Kuehling <Felix.Kuehling@amd.com>
    Cc: Jason Gunthorpe <jgg@mellanox.com>
    Cc: Ross Zwisler <zwisler@kernel.org>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krcmar <rkrcmar@redhat.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Christian Koenig <christian.koenig@amd.com>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Loading