Skip to content
Snippets Groups Projects
Forked from Panfrost / linux
Source project has a limited visibility.
  • Pavel Tatashin's avatar
    e44605a8
    selftests/vm: gup_test: test faulting in kernel, and verify pinnable pages · e44605a8
    Pavel Tatashin authored
    When pages are pinned they can be faulted in userland and migrated, and
    they can be faulted right in kernel without migration.
    
    In either case, the pinned pages must end-up being pinnable (not
    movable).
    
    Add a new test to gup_test, to help verify that the gup/pup
    (get_user_pages() / pin_user_pages()) behavior with respect to pinnable
    and movable pages is reasonable and correct.  Specifically, provide a
    way to:
    
    1) Verify that only "pinnable" pages are pinned.  This is checked
       automatically for you.
    
    2) Verify that gup/pup performance is reasonable.  This requires
       comparing benchmarks between doing gup/pup on pages that have been
       pre-faulted in from user space, vs.  doing gup/pup on pages that are
       not faulted in until gup/pup time (via FOLL_TOUCH).  This decision is
       controlled with the new -z command line option.
    
    Link: https://lkml.kernel.org/r/20210215161349.246722-15-pasha.tatashin@soleen.com
    
    
    Signed-off-by: default avatarPavel Tatashin <pasha.tatashin@soleen.com>
    Reviewed-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Ira Weiny <ira.weiny@intel.com>
    Cc: James Morris <jmorris@namei.org>
    Cc: Jason Gunthorpe <jgg@nvidia.com>
    Cc: Jason Gunthorpe <jgg@ziepe.ca>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Mike Kravetz <mike.kravetz@oracle.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Tyler Hicks <tyhicks@linux.microsoft.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    e44605a8
    History
    selftests/vm: gup_test: test faulting in kernel, and verify pinnable pages
    Pavel Tatashin authored
    When pages are pinned they can be faulted in userland and migrated, and
    they can be faulted right in kernel without migration.
    
    In either case, the pinned pages must end-up being pinnable (not
    movable).
    
    Add a new test to gup_test, to help verify that the gup/pup
    (get_user_pages() / pin_user_pages()) behavior with respect to pinnable
    and movable pages is reasonable and correct.  Specifically, provide a
    way to:
    
    1) Verify that only "pinnable" pages are pinned.  This is checked
       automatically for you.
    
    2) Verify that gup/pup performance is reasonable.  This requires
       comparing benchmarks between doing gup/pup on pages that have been
       pre-faulted in from user space, vs.  doing gup/pup on pages that are
       not faulted in until gup/pup time (via FOLL_TOUCH).  This decision is
       controlled with the new -z command line option.
    
    Link: https://lkml.kernel.org/r/20210215161349.246722-15-pasha.tatashin@soleen.com
    
    
    Signed-off-by: default avatarPavel Tatashin <pasha.tatashin@soleen.com>
    Reviewed-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Ira Weiny <ira.weiny@intel.com>
    Cc: James Morris <jmorris@namei.org>
    Cc: Jason Gunthorpe <jgg@nvidia.com>
    Cc: Jason Gunthorpe <jgg@ziepe.ca>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Mike Kravetz <mike.kravetz@oracle.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Tyler Hicks <tyhicks@linux.microsoft.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>