diff options
author | Keith Busch <keith.busch@intel.com> | 2018-10-26 18:10:08 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-26 19:38:15 -0400 |
commit | 0dd8666afb99c71d124e0c2abf1ad7d934a242a0 (patch) | |
tree | 46a7bc2b351b03dc97be4b05257e56a453afa7a8 | |
parent | aeb85ed4f41a8c0f5c4606d69f5da75e2348d984 (diff) |
tools/testing/selftests/vm/gup_benchmark.c: add MAP_SHARED option
Add a new benchmark option, -S, to request MAP_SHARED. This can be used
to compare with MAP_PRIVATE, or for files that require this option, like
dax.
Link: http://lkml.kernel.org/r/20181010195605.10689-5-keith.busch@intel.com
Signed-off-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Kirill Shutemov <kirill.shutemov@linux.intel.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | tools/testing/selftests/vm/gup_benchmark.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/tools/testing/selftests/vm/gup_benchmark.c b/tools/testing/selftests/vm/gup_benchmark.c index 43a2d60e0e93..5c8e4cb1441a 100644 --- a/tools/testing/selftests/vm/gup_benchmark.c +++ b/tools/testing/selftests/vm/gup_benchmark.c | |||
@@ -32,11 +32,11 @@ int main(int argc, char **argv) | |||
32 | struct gup_benchmark gup; | 32 | struct gup_benchmark gup; |
33 | unsigned long size = 128 * MB; | 33 | unsigned long size = 128 * MB; |
34 | int i, fd, filed, opt, nr_pages = 1, thp = -1, repeats = 1, write = 0; | 34 | int i, fd, filed, opt, nr_pages = 1, thp = -1, repeats = 1, write = 0; |
35 | int cmd = GUP_FAST_BENCHMARK; | 35 | int cmd = GUP_FAST_BENCHMARK, flags = MAP_PRIVATE; |
36 | char *file = "/dev/zero"; | 36 | char *file = "/dev/zero"; |
37 | char *p; | 37 | char *p; |
38 | 38 | ||
39 | while ((opt = getopt(argc, argv, "m:r:n:f:tTLU")) != -1) { | 39 | while ((opt = getopt(argc, argv, "m:r:n:f:tTLUS")) != -1) { |
40 | switch (opt) { | 40 | switch (opt) { |
41 | case 'm': | 41 | case 'm': |
42 | size = atoi(optarg) * MB; | 42 | size = atoi(optarg) * MB; |
@@ -65,6 +65,10 @@ int main(int argc, char **argv) | |||
65 | case 'f': | 65 | case 'f': |
66 | file = optarg; | 66 | file = optarg; |
67 | break; | 67 | break; |
68 | case 'S': | ||
69 | flags &= ~MAP_PRIVATE; | ||
70 | flags |= MAP_SHARED; | ||
71 | break; | ||
68 | default: | 72 | default: |
69 | return -1; | 73 | return -1; |
70 | } | 74 | } |
@@ -83,7 +87,7 @@ int main(int argc, char **argv) | |||
83 | if (fd == -1) | 87 | if (fd == -1) |
84 | perror("open"), exit(1); | 88 | perror("open"), exit(1); |
85 | 89 | ||
86 | p = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE, filed, 0); | 90 | p = mmap(NULL, size, PROT_READ | PROT_WRITE, flags, filed, 0); |
87 | if (p == MAP_FAILED) | 91 | if (p == MAP_FAILED) |
88 | perror("mmap"), exit(1); | 92 | perror("mmap"), exit(1); |
89 | gup.addr = (unsigned long)p; | 93 | gup.addr = (unsigned long)p; |