2559653091
selftests/vm: 10x speedup for hmm-tests
...
This patch reduces the running time for hmm-tests from about 10+ seconds,
to just under 1.0 second, for an approximately 10x speedup. That brings
it in line with most of the other tests in selftests/vm, which mostly run
in < 1 sec.
This is done with a one-line change that simply reduces the number of
iterations of several tests, from 256, to 10. Thanks to Ralph Campbell
for suggesting changing NTIMES as a way to get the speedup.
Suggested-by: Ralph Campbell <rcampbell@nvidia.com >
Signed-off-by: John Hubbard <jhubbard@nvidia.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Cc: SeongJae Park <sj38.park@gmail.com >
Cc: Shuah Khan <shuah@kernel.org >
Link: https://lkml.kernel.org/r/20201003011721.44238-1-jhubbard@nvidia.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-10-18 09:27:09 -07:00
bbf6259903
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
...
Pull trivial updates from Jiri Kosina:
"The latest advances in computer science from the trivial queue"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
xtensa: fix Kconfig typo
spelling.txt: Remove some duplicate entries
mtd: rawnand: oxnas: cleanup/simplify code
selftests: vm: add fragment CONFIG_GUP_BENCHMARK
perf: Fix opt help text for --no-bpf-event
HID: logitech-dj: Fix spelling in comment
bootconfig: Fix kernel message mentioning CONFIG_BOOT_CONFIG
MAINTAINERS: rectify MMP SUPPORT after moving cputype.h
scif: Fix spelling of EACCES
printk: fix global comment
lib/bitmap.c: fix spello
fs: Fix missing 'bit' in comment
2020-10-15 15:11:56 -07:00
9e51183e94
Merge tag 'linux-kselftest-fixes-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
...
Pull kselftest updates from Shuah Khan:
- a selftests harness fix to flush stdout before forking to avoid
parent and child printing duplicates messages. This is evident when
test output is redirected to a file.
- a tools/ wide change to avoid comma separated statements from Joe
Perches. This fix spans tools/lib, tools/power/cpupower, and
selftests.
* tag 'linux-kselftest-fixes-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
tools: Avoid comma separated statements
selftests/harness: Flush stdout before forking
2020-10-14 14:23:51 -07:00
1100262037
selftests/vm: 8x compaction_test speedup
...
This patch reduces the running time for compaction_test from about 27 sec,
to 3.3 sec, which is about an 8x speedup.
These numbers are for an Intel x86_64 system with 32 GB of DRAM.
The compaction_test.c program was spending most of its time doing mmap(),
1 MB at a time, on about 25 GB of memory.
Instead, do the mmaps 100 MB at a time. (Going past 100 MB doesn't make
things go much faster, because other parts of the program are using the
remaining time.)
Signed-off-by: John Hubbard <jhubbard@nvidia.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Sri Jayaramappa <sjayaram@akamai.com >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Mel Gorman <mgorman@techsingularity.net >
Link: https://lkml.kernel.org/r/20201002080621.551044-2-jhubbard@nvidia.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-10-13 18:38:34 -07:00
bfe18a0900
tools/testing/selftests/vm/hmm-tests.c: use the new SKIP() macro
...
Some tests might not be able to be run if resources like huge pages are
not available. Mark these tests as skipped instead of simply passing.
Signed-off-by: Ralph Campbell <rcampbell@nvidia.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Cc: Jerome Glisse <jglisse@redhat.com >
Cc: John Hubbard <jhubbard@nvidia.com >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/20200827190400.12608-1-rcampbell@nvidia.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-10-13 18:38:32 -07:00
34d109131f
selftests/vm: fix incorrect gcc invocation in some cases
...
Avoid accidental wrong builds, due to built-in rules working just a little
bit too well--but not quite as well as required for our situation here.
In other words, "make userfaultfd" (for example) is supposed to fail to
build at all, because this Makefile only supports either "make" (all), or
"make /full/path". However, the built-in rules, if not suppressed, will
pick up CFLAGS and the initial LDLIBS (but not the target-specific LDLIBS,
because those are only set for the full path target!). This causes it to
get pretty far into building things despite using incorrect values such as
an *occasionally* incomplete LDLIBS value.
Signed-off-by: John Hubbard <jhubbard@nvidia.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Jason Gunthorpe <jgg@ziepe.ca >
Link: https://lkml.kernel.org/r/20200915012901.1655280-3-jhubbard@nvidia.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-10-13 18:38:31 -07:00
efc9511cec
selftests/vm: fix false build success on the second and later attempts
...
Patch series "selftests/vm: fix some minor aggravating factors in the Makefile".
This fixes a couple of minor aggravating factors that I ran across while
trying to do some changes in selftests/vm. These are simple things, but
like most things with GNU Make, it's rarely obvious what's wrong until you
understand *the entire Makefile and all of its includes*.
So while there is, of course, joy in learning those details, I thought I'd
fix these little things, so as to allow others to skip out on the Joy if
they so choose. :)
First of all, if you have an item (let's choose userfaultfd for an
example) that fails to build, you might do this:
$ make -j32
# ...you observe a failed item in the threaded output
# OK, let's get a closer look
$ make
# ...but now the build quietly "succeeds".
That's what Patch 0001 fixes.
Second, if you instead attempt this approach for your closer look (a casual
mistake, as it's not supported):
$ make userfaultfd
# ...userfaultfd fails to link, due to incomplete LDLIBS
That's what Patch 0002 fixes.
This patch (of 2):
If one or more of these selftest fail to build, then after the first
failure, subsequent invocations of "make" will make it appear that there
are no build failures, after all.
That's because the failed build products remain, with up-to-date
timestamps, thus tricking Make (and you!) into believing that there's
nothing else to build.
Fix this by telling Make to delete targets that didn't completely
succeed.
Signed-off-by: John Hubbard <jhubbard@nvidia.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Jason Gunthorpe <jgg@ziepe.ca >
Link: https://lkml.kernel.org/r/20200915012901.1655280-1-jhubbard@nvidia.com
Link: https://lkml.kernel.org/r/20200915012901.1655280-2-jhubbard@nvidia.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-10-13 18:38:31 -07:00
657d4f7996
mm/gup_benchmark: use pin_user_pages for FOLL_LONGTERM flag
...
According to Documentation/core-api/pin_user_pages.rst, FOLL_PIN is a
prerequisite to FOLL_LONGTERM. Another way of saying that is,
FOLL_LONGTERM is a specific case, more restrictive case of FOLL_PIN.
Almost all kernel modules are using pin_user_pages() with FOLL_LONGTERM,
mm/gup_benchmark.c seems to the only exception in which FOLL_PIN is not a
prerequisite to FOLL_LONGTERM.
Signed-off-by: Barry Song <song.bao.hua@hisilicon.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Reviewed-by: John Hubbard <jhubbard@nvidia.com >
Cc: Jan Kara <jack@suse.cz >
Cc: Jérôme Glisse <jglisse@redhat.com >
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org >
Cc: Al Viro <viro@zeniv.linux.org.uk >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Dan Williams <dan.j.williams@intel.com >
Cc: Dave Chinner <david@fromorbit.com >
Cc: Jason Gunthorpe <jgg@ziepe.ca >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Michal Hocko <mhocko@suse.com >
Cc: Mike Kravetz <mike.kravetz@oracle.com >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Vlastimil Babka <vbabka@suse.cz >
Link: http://lkml.kernel.org/r/20200815122056.29508-1-song.bao.hua@hisilicon.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-10-13 18:38:29 -07:00
aa803771a8
tools: Avoid comma separated statements
...
Use semicolons and braces.
Signed-off-by: Joe Perches <joe@perches.com >
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org >
2020-10-02 10:36:36 -06:00
1ec882fc81
selftests/vm: fix display of page size in map_hugetlb
...
The displayed size is in bytes while the text says it is in kB.
Shift it by 10 to really display kBytes.
Fixes: fa7b9a805c
("tools/selftest/vm: allow choosing mem size and page size in map_hugetlb")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Cc: <stable@vger.kernel.org >
Link: https://lkml.kernel.org/r/e27481224564a93d14106e750de31189deaa8bc8.1598861977.git.christophe.leroy@csgroup.eu
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-09-19 13:13:39 -07:00
cae1d5a2c5
selftests: vm: add fragment CONFIG_GUP_BENCHMARK
...
When running gup_benchmark test the following output states that
the config options is missing.
$ sudo ./gup_benchmark
open: No such file or directory
$ sudo strace -e trace=file ./gup_benchmark 2>&1 | tail -3
openat(AT_FDCWD, "/sys/kernel/debug/gup_benchmark", O_RDWR) = -1 ENOENT
(No such file or directory)
open: No such file or directory
+++ exited with 1 +++
Fix it by adding config option fragment.
Fixes: 64c349f4ae
("mm: add infrastructure for get_user_pages_fast() benchmarking")
Signed-off-by: Anatoly Pugachev <matorola@gmail.com >
CC: Jiri Kosina <trivial@kernel.org >
CC: Shuah Khan <shuah@kernel.org >
Signed-off-by: Jiri Kosina <jkosina@suse.cz >
2020-09-01 14:29:20 +02:00
b0fc0f3fca
mm/migrate: add migrate-shared test for migrate_vma_*()
...
Add a migrate_vma_*() self test for mmap(MAP_SHARED) to verify that
!vma_anonymous() ranges won't be migrated.
Signed-off-by: Ralph Campbell <rcampbell@nvidia.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Cc: Jerome Glisse <jglisse@redhat.com >
Cc: John Hubbard <jhubbard@nvidia.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Jason Gunthorpe <jgg@mellanox.com >
Cc: "Bharata B Rao" <bharata@linux.ibm.com >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/20200710194840.7602-3-rcampbell@nvidia.com
Link: http://lkml.kernel.org/r/20200709165711.26584-3-rcampbell@nvidia.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-08-12 10:57:56 -07:00
fffe3ae0ee
Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
...
Pull hmm updates from Jason Gunthorpe:
"Ralph has been working on nouveau's use of hmm_range_fault() and
migrate_vma() which resulted in this small series. It adds reporting
of the page table order from hmm_range_fault() and some optimization
of migrate_vma():
- Report the size of the page table mapping out of hmm_range_fault().
This makes it easier to establish a large/huge/etc mapping in the
device's page table.
- Allow devices to ignore the invalidations during migration in cases
where the migration is not going to change pages.
For instance migrating pages to a device does not require the
device to invalidate pages already in the device.
- Update nouveau and hmm_tests to use the above"
* tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
mm/hmm/test: use the new migration invalidation
nouveau/svm: use the new migration invalidation
mm/notifier: add migration invalidation type
mm/migrate: add a flags parameter to migrate_vma
nouveau: fix storing invalid ptes
nouveau/hmm: support mapping large sysmem pages
nouveau: fix mapping 2MB sysmem pages
nouveau/hmm: fault one page at a time
mm/hmm: add tests for hmm_pfn_to_map_order()
mm/hmm: provide the page mapping order in hmm_range_fault()
2020-08-05 13:28:50 -07:00
7d17e83abe
mm/hmm/test: use the new migration invalidation
...
Use the new MMU_NOTIFY_MIGRATE event to skip MMU invalidations of device
private memory and handle the invalidation in the driver as part of
migrating device private memory.
Link: https://lore.kernel.org/r/20200723223004.9586-6-rcampbell@nvidia.com
Signed-off-by: Ralph Campbell <rcampbell@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2020-07-28 16:20:33 -03:00
e478425bec
mm/hmm: add tests for hmm_pfn_to_map_order()
...
Add a sanity test for hmm_range_fault() returning the page mapping size
order.
Link: https://lore.kernel.org/r/20200701225352.9649-6-rcampbell@nvidia.com
Signed-off-by: Ralph Campbell <rcampbell@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2020-07-10 16:24:28 -03:00
466fb03011
selftests/vm/keys: fix a broken reference at protection_keys.c
...
Changeset 1eecbcdca2
("docs: move protection-keys.rst to the core-api book")
from Jun 7, 2019 converted protection-keys.txt file to ReST.
A recent change at protection_keys.c partially reverted such
changeset, causing it to point to a non-existing file:
- * Tests x86 Memory Protection Keys (see Documentation/core-api/protection-keys.rst)
+ * Tests Memory Protection Keys (see Documentation/vm/protection-keys.txt)
It sounds to me that the changeset that introduced such change
4645e3563673 ("selftests/vm/pkeys: rename all references to pkru to a generic name")
could also have other side effects, as it sounds that it was not
generated against uptream code, but, instead, against a version
older than Jun 7, 2019.
Fixes: 4645e3563673 ("selftests/vm/pkeys: rename all references to pkru to a generic name")
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org >
Link: https://lore.kernel.org/r/cf65aa052669f55b9dc976a5c8026aef5840741d.1592895969.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net >
2020-06-26 10:01:12 -06:00
9f267a17bf
khugepaged: selftests: fix timeout condition in wait_for_scan()
...
The loop exits with "timeout" set to -1 and not to 0 so the test needs to
be fixed.
Fixes: e7b592f6caca ("khugepaged: add self test")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Stephen Rothwell <sfr@canb.auug.org.au >
Cc: Zi Yan <ziy@nvidia.com >
Cc: William Kucharski <william.kucharski@oracle.com >
Cc: Yang Shi <yang.shi@linux.alibaba.com >
Cc: John Hubbard <jhubbard@nvidia.com >
Link: http://lkml.kernel.org/r/20200605110736.GH978434@mwanda
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-10 19:14:17 -07:00
2792d488a2
tools/testing/selftests/vm: remove duplicate headers
...
Code cleanup: Remove duplicate headers which are included twice.
Signed-off-by: Jagadeesh Pagadala <jagdsh.linux@gmail.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Brian Geffon <bgeffon@google.com >
Link: http://lkml.kernel.org/r/1587278984-18847-1-git-send-email-jagdsh.linux@gmail.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
f21fda8f64
selftests: vm: pkeys: fix multilib builds for x86
...
This ensures that both 32-bit and 64-bit binaries are generated when this
is built on a x86_64 system. Most of the changes have been borrowed from
tools/testing/selftests/x86/Makefile.
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Tested-by: Dave Hansen <dave.hansen@intel.com >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Ram Pai <linuxram@us.ibm.com >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/0326a442214d7a1b970d38296e63df3b217f5912.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
473c3cc86c
selftests: vm: pkeys: use the correct page size on powerpc
...
Both 4K and 64K pages are supported on powerpc. Parts of the selftest
code perform alignment computations based on the PAGE_SIZE macro which is
currently hardcoded to 64K for powerpc. This causes some test failures on
kernels configured with 4K page size.
In some cases, we need to enforce function alignment on page size. Since
this can only be done at build time, 64K is used as the alignment factor
as that also ensures 4K alignment.
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Ram Pai <linuxram@us.ibm.com >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/5dcdfbf3353acdc90f315172e800b49f5ca21299.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
e9506394a1
selftests/vm/pkeys: override access right definitions on powerpc
...
Some platforms hardcode the x86 values for PKEY_DISABLE_ACCESS
and PKEY_DISABLE_WRITE such as those in:
/usr/include/bits/mman-shared.h.
This overrides the definitions with correct values for powerpc.
[sandipan@linux.ibm.com: fix powerpc access right definitions]
Link: http://lkml.kernel.org/r/1ba86fd8a94f38131cfe2d9f277001dd1ad1d34e.1588959697.git.sandipan@linux.ibm.com
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/f6eb38cb3a1e12eb2cdc9da6300bc5a5dfba0db9.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
fa17437cb8
selftests/vm/pkeys: test correct behaviour of pkey-0
...
Ensure that pkey-0 is allocated on start and that it can be attached
dynamically in various modes, without failures.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/9b7c54a9b4261894fe0c7e884c70b87214ff8fbb.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
6e2c2d0fb7
selftests/vm/pkeys: introduce a sub-page allocator
...
This introduces a new allocator that allocates 4K hardware pages to back
64K linux pages. This allocator is available only on powerpc.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/c4a82fa962ec71015b994fab1aaf83bdfd091553.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
4e06e718af
selftests/vm/pkeys: detect write violation on a mapped access-denied-key page
...
Detect write-violation on a page to which access-disabled key is
associated much after the page is mapped.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/6a7dd4069ee18a2a51b207a55aa197f3f3c59753.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
39351c1326
selftests/vm/pkeys: associate key on a mapped page and detect write violation
...
Detect write-violation on a page to which write-disabled key is associated
much after the page is mapped.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/6bfe3b3832f8bcfb07d7f2cf116b45197f4587dd.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
aef759db63
selftests/vm/pkeys: associate key on a mapped page and detect access violation
...
Detect access-violation on a page to which access-disabled key is
associated much after the page is mapped.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/4a19cf9252c03dd883887e9002881599e6900d06.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
94c8a223de
selftests/vm/pkeys: improve checks to determine pkey support
...
For the pkeys subsystem to work, both the CPU and the kernel need to have
support. So, additionally check if the kernel supports pkeys apart from
the CPU feature checks.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/8fb76c63ebdadcf068ecd2d23731032e195cd364.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
b0acc5d6bf
selftests/vm/pkeys: fix assertion in test_pkey_alloc_exhaust()
...
Some pkeys which are valid on the hardware are reserved and not available
for application use. These keys cannot be allocated.
test_pkey_alloc_exhaust() tries to account for these and has an assertion
which validates if all available pkeys have been exahaustively allocated.
However, the expression that is currently used is only valid for x86. On
powerpc, a pkey is additionally reserved as compared to x86. Hence, the
assertion is made to use an arch-specific helper to get the correct count
of reserved pkeys.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/38b08d0318820ae46af3aa6048384fd8056c3df7.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
c63e5e7f99
selftests/vm/pkeys: fix number of reserved powerpc pkeys
...
The number of reserved pkeys in a PowerNV environment is different from
that on PowerVM or KVM.
Tested on PowerVM and PowerNV environments.
Signed-off-by: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/0341a0ca961166814b44c9e724774672c18d54ca.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
589944b53b
selftests/vm/pkeys: introduce powerpc support
...
This makes use of the abstractions added earlier and introduces support
for powerpc.
For powerpc, after receiving the SIGSEGV, the signal handler must
explicitly restore access permissions for the faulting pkey to allow the
test to continue. As this makes use of pkey_access_allow(), all of its
dependencies and other similar functions have been moved ahead of the
signal handler.
[sandipan@linux.ibm.com: fix powerpc access right updates]
Link: http://lkml.kernel.org/r/5f65cf37be993760de8112a88da194e3ccbb2bf8.1588959697.git.sandipan@linux.ibm.com
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/b121e9fd33789ed9195276e32fe4e80bb6b88a31.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
604c496b22
selftests/vm/pkeys: introduce generic pkey abstractions
...
This introduces some generic abstractions and provides the corresponding
architecture-specfic implementations for these abstractions.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/1c977915e69fb7767fb0dbd55ac7656554b15b93.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
57bcb57da2
selftests: vm: pkeys: use the correct huge page size
...
The huge page size can vary across architectures. This will ensure that
the correct huge page size is used when accessing the hugetlb controls
under sysfs. Instead of using a hardcoded page size (i.e. 2MB), this now
uses the HPAGE_SIZE macro which is arch-specific.
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Ram Pai <linuxram@us.ibm.com >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/66882a5d6e45c73c3a52bc4aef9754e48afa4f88.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
6e373263ce
selftests/vm/pkeys: fix alloc_random_pkey() to make it really random
...
alloc_random_pkey() was allocating the same pkey every time. Not all
pkeys were geting tested. This fixes it.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/0162f55816d4e783a0d6e49e554d0ab9a3c9a23b.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
ea5f95c3d6
selftests/vm/pkeys: fix assertion in pkey_disable_set/clear()
...
In some cases, a pkey's bits need not necessarily change in a way that the
value of the pkey register increases when performing a pkey_disable_set()
or decreases when performing a pkey_disable_clear().
For example, on powerpc, if a pkey's current state is PKEY_DISABLE_ACCESS
and we perform a pkey_write_disable() on it, the bits still remain the
same. We will observe something similar when the pkey's current state is
0 and a pkey_access_enable() is performed on it.
Either case would cause some assertions to fail. This fixes the problem.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/8240665131e43fc93eed4eea8194676c1ea39a7f.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:27 -07:00
11551801a7
selftests/vm/pkeys: fix pkey_disable_clear()
...
Currently, pkey_disable_clear() sets the specified bits instead clearing
them. This has been dead code up to now because its only callers i.e.
pkey_access/write_allow() are also unused.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/1f70bca60330a85dca42c3cd98212bb1cdf5a076.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:26 -07:00
0c416bcaef
selftests: vm: pkeys: add helpers for pkey bits
...
This introduces some functions that help with setting or clearing bits of
a particular pkey. This also adds an abstraction for getting a pkey's bit
position in the pkey register as this may vary across architectures.
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Ram Pai <linuxram@us.ibm.com >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/2ad9705f4f68ca7e72155cc583415e5a979546f1.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:26 -07:00
4dbdd947cb
selftests: vm: pkeys: Use sane types for pkey register
...
The size of the pkey register can vary across architectures. This
converts the data type of all its references to u64 in preparation for
multi-arch support.
To keep the definition of the u64 type consistent and remove format
specifier related warnings, __SANE_USERSPACE_TYPES__ is defined as
suggested by Michael Ellerman.
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Ram Pai <linuxram@us.ibm.com >
Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/d3e271798455d940e395e56e1ff1e82a31bcb7aa.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:26 -07:00
a09160e694
selftests/vm/pkeys: make gcc check arguments of sigsafe_printf()
...
This will help us ensure we print pkey_reg_t values correctly in different
architectures.
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Ram Pai <linuxram@us.ibm.com >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/b40b7a95fdd4045d62530a2a34452934caf3b0bc.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:26 -07:00
53555e2b4d
selftests/vm/pkeys: move some definitions to arch-specific header
...
In preparation for multi-arch support, move definitions which
have arch-specific values to x86-specific header.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/d58eba2930059c8b209eefd6d5b48fe922a5b010.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:26 -07:00
5461c6625f
selftests/vm/pkeys: move generic definitions to header file
...
Moved all the generic definition and helper functions to the
header file.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/57177f99e92a51295956715d5f2d5688a4d13927.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:26 -07:00
c4273c7f0e
selftests/vm/pkeys: rename all references to pkru to a generic name
...
This renames PKRU references to "pkey_reg" or "pkey" based on
the usage.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Reviewed-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/2c6970bc6d2e99796cd5cc1101bd2ecf7eccb937.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:26 -07:00
804eb64615
selftests/x86/pkeys: move selftests to arch-neutral directory
...
Patch series "selftests, powerpc, x86: Memory Protection Keys", v19.
Memory protection keys enables an application to protect its address space
from inadvertent access by its own code.
This feature is now enabled on powerpc and has been available since
4.16-rc1. The patches move the selftests to arch neutral directory and
enhance their test coverage.
Tested on powerpc64 and x86_64 (Skylake-SP).
This patch (of 24):
Move selftest files from tools/testing/selftests/x86/ to
tools/testing/selftests/vm/.
Signed-off-by: Ram Pai <linuxram@us.ibm.com >
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Acked-by: Ingo Molnar <mingo@kernel.org >
Acked-by: Dave Hansen <dave.hansen@intel.com >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: Florian Weimer <fweimer@redhat.com >
Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com >
Cc: Michal Hocko <mhocko@kernel.org >
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com >
Cc: Michal Suchanek <msuchanek@suse.de >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Shuah Khan <shuah@kernel.org >
Link: http://lkml.kernel.org/r/14d25194c3e2e652e0047feec4487e269e76e8c9.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-04 19:06:26 -07:00
71a2c112a0
khugepaged: introduce 'max_ptes_shared' tunable
...
'max_ptes_shared' specifies how many pages can be shared across multiple
processes. Exceeding the number would block the collapse::
/sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_shared
A higher value may increase memory footprint for some workloads.
By default, at least half of pages has to be not shared.
[colin.king@canonical.com: fix several spelling mistakes]
Link: http://lkml.kernel.org/r/20200420084241.65433-1-colin.king@canonical.com
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Signed-off-by: Colin Ian King <colin.king@canonical.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Tested-by: Zi Yan <ziy@nvidia.com >
Reviewed-by: William Kucharski <william.kucharski@oracle.com >
Reviewed-by: Zi Yan <ziy@nvidia.com >
Acked-by: Yang Shi <yang.shi@linux.alibaba.com >
Cc: Andrea Arcangeli <aarcange@redhat.com >
Cc: John Hubbard <jhubbard@nvidia.com >
Cc: Mike Kravetz <mike.kravetz@oracle.com >
Cc: Ralph Campbell <rcampbell@nvidia.com >
Link: http://lkml.kernel.org/r/20200416160026.16538-9-kirill.shutemov@linux.intel.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-03 20:09:46 -07:00
e0c13f9761
khugepaged: add self test
...
Patch series "thp/khugepaged improvements and CoW semantics", v4.
The patchset adds khugepaged selftest (anon-THP only for now), expands
cases khugepaged can handle and switches anon-THP copy-on-write handling
to 4k.
This patch (of 8):
The test checks if khugepaged is able to recover huge page where we expect
to do so. It only covers anon-THP for now.
Currently the test shows few failures. They are going to be addressed by
the following patches.
[colin.king@canonical.com: fix several spelling mistakes]
Link: http://lkml.kernel.org/r/20200420084241.65433-1-colin.king@canonical.com
[aneesh.kumar@linux.ibm.com: replace the usage of system(3) in the test]
Link: http://lkml.kernel.org/r/20200429110727.89388-1-aneesh.kumar@linux.ibm.com
[kirill@shutemov.name: fixup for issues I've noticed]
Link: http://lkml.kernel.org/r/20200429124816.jp272trghrzxx5j5@box
[jhubbard@nvidia.com: add khugepaged to .gitignore]
Link: http://lkml.kernel.org/r/20200517002509.362401-1-jhubbard@nvidia.com
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Signed-off-by: Colin Ian King <colin.king@canonical.com >
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com >
Signed-off-by: John Hubbard <jhubbard@nvidia.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Tested-by: Zi Yan <ziy@nvidia.com >
Reviewed-by: William Kucharski <william.kucharski@oracle.com >
Reviewed-by: Zi Yan <ziy@nvidia.com >
Acked-by: Yang Shi <yang.shi@linux.alibaba.com >
Cc: Andrea Arcangeli <aarcange@redhat.com >
Cc: Ralph Campbell <rcampbell@nvidia.com >
Cc: John Hubbard <jhubbard@nvidia.com >
Cc: William Kucharski <william.kucharski@oracle.com >
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com >
Cc: Mike Kravetz <mike.kravetz@oracle.com >
Link: http://lkml.kernel.org/r/20200416160026.16538-1-kirill.shutemov@linux.intel.com
Link: http://lkml.kernel.org/r/20200416160026.16538-2-kirill.shutemov@linux.intel.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-06-03 20:09:46 -07:00
cfa3b8068b
Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
...
Pull hmm updates from Jason Gunthorpe:
"This series adds a selftest for hmm_range_fault() and several of the
DEVICE_PRIVATE migration related actions, and another simplification
for hmm_range_fault()'s API.
- Simplify hmm_range_fault() with a simpler return code, no
HMM_PFN_SPECIAL, and no customizable output PFN format
- Add a selftest for hmm_range_fault() and DEVICE_PRIVATE related
functionality"
* tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
MAINTAINERS: add HMM selftests
mm/hmm/test: add selftests for HMM
mm/hmm/test: add selftest driver for HMM
mm/hmm: remove the customizable pfn format from hmm_range_fault
mm/hmm: remove HMM_PFN_SPECIAL
drm/amdgpu: remove dead code after hmm_range_fault()
mm/hmm: make hmm_range_fault return 0 or -1
2020-06-02 14:05:27 -07:00
380e5c1d9b
selftests/vm/write_to_hugetlbfs.c: fix unused variable warning
...
Remove unused variable "i", which was triggering a compiler warning.
Fixes: 29750f71a9
("hugetlb_cgroup: add hugetlb_cgroup reservation tests")
Signed-off-by: John Hubbard <jhubbard@nvidia.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Reviewed-By: Mina Almasry <almasrymina@google.com >
Cc: Brian Geffon <bgeffon@google.com >
Cc: "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Ralph Campbell <rcampbell@nvidia.com >
Link: http://lkml.kernel.org/r/20200517001245.361762-2-jhubbard@nvidia.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-05-23 10:26:31 -07:00
98097701cc
selftests/vm/.gitignore: add mremap_dontunmap
...
Add mremap_dontunmap to .gitignore.
Fixes: 0c28759ee3
("selftests: add MREMAP_DONTUNMAP selftest")
Signed-off-by: John Hubbard <jhubbard@nvidia.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Brian Geffon <bgeffon@google.com >
Link: http://lkml.kernel.org/r/20200517002509.362401-2-jhubbard@nvidia.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2020-05-23 10:26:31 -07:00
fee9f6d1b8
mm/hmm/test: add selftests for HMM
...
Add some basic stand alone self tests for HMM.
The test program and shell scripts use the test_hmm.ko driver to exercise
HMM functionality in the kernel.
Link: https://lore.kernel.org/r/20200422195028.3684-3-rcampbell@nvidia.com
Signed-off-by: Ralph Campbell <rcampbell@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com >
2020-05-19 16:48:31 -03:00
963e3e9c9a
selftests: vm: Fix 64-bit test builds for powerpc64le
...
Some tests are built only for 64-bit systems. This makes
sure that these tests are built for both big and little
endian variants of powerpc64.
Fixes: 7549b33642
("selftests: vm: Build/Run 64bit tests only on 64bit arch")
Reviewed-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com >
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Tested-by: Michael Ellerman <mpe@ellerman.id.au >
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org >
2020-04-13 09:33:46 -06:00
24c3f063c5
selftests: vm: Do not override definition of ARCH
...
Independent builds of the vm selftests is currently broken because
commit 7549b33642
("selftests: vm: Build/Run 64bit tests only on
64bit arch") overrides the value of ARCH with the machine name from
uname. This does not always match the architecture names used for
tasks like header installation.
E.g. for building tests on powerpc64, we need ARCH=powerpc
and not ARCH=ppc64 or ARCH=ppc64le. Otherwise, the build
fails as shown below.
$ uname -m
ppc64le
$ make -C tools/testing/selftests/vm
make: Entering directory '/home/sandipan/linux/tools/testing/selftests/vm'
make --no-builtin-rules ARCH=ppc64le -C ../../../.. headers_install
make[1]: Entering directory '/home/sandipan/linux'
Makefile:653: arch/ppc64le/Makefile: No such file or directory
make[1]: *** No rule to make target 'arch/ppc64le/Makefile'. Stop.
make[1]: Leaving directory '/home/sandipan/linux'
../lib.mk:50: recipe for target 'khdr' failed
make: *** [khdr] Error 2
make: Leaving directory '/home/sandipan/linux/tools/testing/selftests/vm'
Fixes: 7549b33642
("selftests: vm: Build/Run 64bit tests only on 64bit arch")
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com >
Tested-by: Michael Ellerman <mpe@ellerman.id.au >
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org >
2020-04-13 09:33:46 -06:00