Message ID | 20181010195605.10689-4-keith.busch@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/6] mm/gup_benchmark: Time put_page | expand |
On Wed, 10 Oct 2018 13:56:03 -0600 Keith Busch <keith.busch@intel.com> wrote: > This patch allows a user to specify a file to map by adding a new option, > '-f', providing a means to test various file backings. > > If not specified, the benchmark will use a private mapping of /dev/zero, > which produces an anonymous mapping as before. > > ... > > --- a/tools/testing/selftests/vm/gup_benchmark.c > +++ b/tools/testing/selftests/vm/gup_benchmark.c > > ... > > @@ -61,11 +62,18 @@ int main(int argc, char **argv) > case 'w': > write = 1; > break; > + case 'f': > + file = optarg; > + break; > default: > return -1; > } > } > > + filed = open(file, O_RDWR|O_CREAT); > + if (filed < 0) > + perror("open"), exit(filed); Ick. Like this, please: --- a/tools/testing/selftests/vm/gup_benchmark.c~tools-gup_benchmark-allow-user-specified-file-fix +++ a/tools/testing/selftests/vm/gup_benchmark.c @@ -71,8 +71,10 @@ int main(int argc, char **argv) } filed = open(file, O_RDWR|O_CREAT); - if (filed < 0) - perror("open"), exit(filed); + if (filed < 0) { + perror("open"); + exit(filed); + } gup.nr_pages_per_call = nr_pages; gup.flags = write;
On Wed, Oct 10, 2018 at 03:31:01PM -0700, Andrew Morton wrote: > On Wed, 10 Oct 2018 13:56:03 -0600 Keith Busch <keith.busch@intel.com> wrote: > > + filed = open(file, O_RDWR|O_CREAT); > > + if (filed < 0) > > + perror("open"), exit(filed); > > Ick. Like this, please: Yeah, I agree. I just copied the style this file had been using in other error cases, but I still find it less readable than your recommendation. > --- a/tools/testing/selftests/vm/gup_benchmark.c~tools-gup_benchmark-allow-user-specified-file-fix > +++ a/tools/testing/selftests/vm/gup_benchmark.c > @@ -71,8 +71,10 @@ int main(int argc, char **argv) > } > > filed = open(file, O_RDWR|O_CREAT); > - if (filed < 0) > - perror("open"), exit(filed); > + if (filed < 0) { > + perror("open"); > + exit(filed); > + } > > gup.nr_pages_per_call = nr_pages; > gup.flags = write; >
diff --git a/tools/testing/selftests/vm/gup_benchmark.c b/tools/testing/selftests/vm/gup_benchmark.c index b2082df8beb4..b675a3d60975 100644 --- a/tools/testing/selftests/vm/gup_benchmark.c +++ b/tools/testing/selftests/vm/gup_benchmark.c @@ -31,11 +31,12 @@ int main(int argc, char **argv) { struct gup_benchmark gup; unsigned long size = 128 * MB; - int i, fd, opt, nr_pages = 1, thp = -1, repeats = 1, write = 0; + int i, fd, filed, opt, nr_pages = 1, thp = -1, repeats = 1, write = 0; int cmd = GUP_FAST_BENCHMARK; + char *file = "/dev/zero"; char *p; - while ((opt = getopt(argc, argv, "m:r:n:tTLU")) != -1) { + while ((opt = getopt(argc, argv, "m:r:n:f:tTLU")) != -1) { switch (opt) { case 'm': size = atoi(optarg) * MB; @@ -61,11 +62,18 @@ int main(int argc, char **argv) case 'w': write = 1; break; + case 'f': + file = optarg; + break; default: return -1; } } + filed = open(file, O_RDWR|O_CREAT); + if (filed < 0) + perror("open"), exit(filed); + gup.nr_pages_per_call = nr_pages; gup.flags = write; @@ -73,8 +81,7 @@ int main(int argc, char **argv) if (fd == -1) perror("open"), exit(1); - p = mmap(NULL, size, PROT_READ | PROT_WRITE, - MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); + p = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE, filed, 0); if (p == MAP_FAILED) perror("mmap"), exit(1); gup.addr = (unsigned long)p;
This patch allows a user to specify a file to map by adding a new option, '-f', providing a means to test various file backings. If not specified, the benchmark will use a private mapping of /dev/zero, which produces an anonymous mapping as before. 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: Keith Busch <keith.busch@intel.com> --- tools/testing/selftests/vm/gup_benchmark.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)