All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Hubbard <jhubbard@nvidia.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: "Shuah Khan" <shuah@kernel.org>,
	"Mike Rapoport" <rppt@linux.vnet.ibm.com>,
	"Ralph Campbell" <rcampbell@nvidia.com>,
	"Jérôme Glisse" <jglisse@redhat.com>,
	"Jonathan Corbet" <corbet@lwn.net>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-mm@kvack.org, linux-kselftest@vger.kernel.org,
	"John Hubbard" <jhubbard@nvidia.com>
Subject: [PATCH v3 0/9] selftests/vm: gup_test, hmm-tests, assorted improvements
Date: Sun, 25 Oct 2020 23:40:12 -0700	[thread overview]
Message-ID: <20201026064021.3545418-1-jhubbard@nvidia.com> (raw)

Hi,

Reposting for -rc1, with some fixes, and an additional path at the end,
too. I've swept through and looked for problems, as well.

Changes since v2 [1]:

* Rebased onto 5.10-rc1

* Fixed an improper ".." include path, indentified by Linus [2].

* Added an "if (cmd == DUMP_USER_PAGES_TEST)" guard to invoking
dump_pages_test(). Before, it worked, but it's too subtle to depend
merely on struct gup_test.which_pages[] being zeroed out, in order to
avoid dumping pages that are not requested to be dumped.

* Added a patch to the end: 2x speedup for run_vmtests.sh

* Tweaked some commit logs and comments slightly

Original cover letter, edited slightly:

Summary: This series provides two main things, and a number of smaller
supporting goodies. The two main points are:

1) Add a new sub-test to gup_test, which in turn is a renamed version of
gup_benchmark. This sub-test allows nicer testing of dump_pages(), at
least on user-space pages.

For quite a while, I was doing a quick hack to gup_test.c whenever I
wanted to try out changes to dump_page(). Then Matthew Wilcox asked me
what I meant when I said "I used my dump_page() unit test", and I
realized that it might be nice to check in a polished up version of
that.

Details about how it works and how to use it are in the commit
description for patch #6 ("selftests/vm: gup_test: introduce the
dump_pages() sub-test").

2) Fixes a limitation of hmm-tests: these tests are incredibly useful,
but only if people actually build and run them. And it turns out that
libhugetlbfs is a little too effective at throwing a wrench in the
works, there. So I've added a little configuration check that removes
just two of the 21 hmm-tests, if libhugetlbfs is not available.

Further details in the commit description of patch #8 ("selftests/vm:
hmm-tests: remove the libhugetlbfs dependency").

Other smaller things that this series does:

a) Remove code duplication by creating gup_test.h.

b) Clear up the sub-test organization, and their invocation within
run_vmtests.sh.

c) Other minor assorted improvements.

[1] v2 is here:
https://lore.kernel.org/linux-doc/20200929212747.251804-1-jhubbard@nvidia.com/

[2] https://lore.kernel.org/r/CAHk-=wgh-TMPHLY3jueHX7Y2fWh3D+nMBqVS__AZm6-oorquWA@mail.gmail.com


John Hubbard (9):
  mm/gup_benchmark: rename to mm/gup_test
  selftests/vm: use a common gup_test.h
  selftests/vm: rename run_vmtests --> run_vmtests.sh
  selftests/vm: minor cleanup: Makefile and gup_test.c
  selftests/vm: only some gup_test items are really benchmarks
  selftests/vm: gup_test: introduce the dump_pages() sub-test
  selftests/vm: run_vmtests.sh: update and clean up gup_test invocation
  selftests/vm: hmm-tests: remove the libhugetlbfs dependency
  selftests/vm: 2x speedup for run_vmtests.sh

 Documentation/core-api/pin_user_pages.rst     |   6 +-
 arch/s390/configs/debug_defconfig             |   2 +-
 arch/s390/configs/defconfig                   |   2 +-
 mm/Kconfig                                    |  21 +-
 mm/Makefile                                   |   2 +-
 mm/{gup_benchmark.c => gup_test.c}            | 111 ++++++----
 mm/gup_test.h                                 |  32 +++
 tools/testing/selftests/vm/.gitignore         |   3 +-
 tools/testing/selftests/vm/Makefile           |  38 +++-
 tools/testing/selftests/vm/check_config.sh    |  31 +++
 tools/testing/selftests/vm/config             |   2 +-
 tools/testing/selftests/vm/gup_benchmark.c    | 143 -------------
 tools/testing/selftests/vm/gup_test.c         | 194 ++++++++++++++++++
 tools/testing/selftests/vm/hmm-tests.c        |  10 +-
 .../vm/{run_vmtests => run_vmtests.sh}        |  32 ++-
 15 files changed, 416 insertions(+), 213 deletions(-)
 rename mm/{gup_benchmark.c => gup_test.c} (60%)
 create mode 100644 mm/gup_test.h
 create mode 100644 tools/testing/selftests/vm/check_config.sh
 delete mode 100644 tools/testing/selftests/vm/gup_benchmark.c
 create mode 100644 tools/testing/selftests/vm/gup_test.c
 rename tools/testing/selftests/vm/{run_vmtests => run_vmtests.sh} (88%)


base-commit: 3650b228f83adda7e5ee532e2b90429c03f7b9ec
-- 
2.29.0


             reply	other threads:[~2020-10-26  6:41 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-26  6:40 John Hubbard [this message]
2020-10-26  6:40 ` [PATCH v3 1/9] mm/gup_benchmark: rename to mm/gup_test John Hubbard
2020-10-26  6:40 ` [PATCH v3 2/9] selftests/vm: use a common gup_test.h John Hubbard
2020-10-26  6:40 ` [PATCH v3 3/9] selftests/vm: rename run_vmtests --> run_vmtests.sh John Hubbard
2020-10-26  6:40 ` [PATCH v3 4/9] selftests/vm: minor cleanup: Makefile and gup_test.c John Hubbard
2020-10-26  6:40 ` [PATCH v3 5/9] selftests/vm: only some gup_test items are really benchmarks John Hubbard
2020-10-26  6:40 ` [PATCH v3 6/9] selftests/vm: gup_test: introduce the dump_pages() sub-test John Hubbard
2020-10-26  6:40 ` [PATCH v3 7/9] selftests/vm: run_vmtests.sh: update and clean up gup_test invocation John Hubbard
2020-10-26  6:40 ` [PATCH v3 8/9] selftests/vm: hmm-tests: remove the libhugetlbfs dependency John Hubbard
2020-10-26  6:40 ` [PATCH v3 9/9] selftests/vm: 2x speedup for run_vmtests.sh John Hubbard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201026064021.3545418-1-jhubbard@nvidia.com \
    --to=jhubbard@nvidia.com \
    --cc=akpm@linux-foundation.org \
    --cc=corbet@lwn.net \
    --cc=jglisse@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rcampbell@nvidia.com \
    --cc=rppt@linux.vnet.ibm.com \
    --cc=shuah@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.