All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Rapoport <rppt@linux.ibm.com>
To: Peter Xu <peterx@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Mike Kravetz <mike.kravetz@oracle.com>,
	Mike Rapoport <rppt@linux.vnet.ibm.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Leonardo Bras Soares Passos <lsoaresp@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@redhat.com>,
	Axel Rasmussen <axelrasmussen@google.com>,
	Nadav Amit <nadav.amit@gmail.com>
Subject: Re: [PATCH 18/29] selftests/mm: Drop global hpage_size in uffd tests
Date: Tue, 11 Apr 2023 13:41:30 +0300	[thread overview]
Message-ID: <ZDU5Wq5TXKyragOa@linux.ibm.com> (raw)
In-Reply-To: <20230330160809.3107511-1-peterx@redhat.com>

On Thu, Mar 30, 2023 at 12:08:09PM -0400, Peter Xu wrote:
> hpage_size was wrongly used.  Sometimes it means hugetlb default size,
> sometimes it was used as thp size.
> 
> Remove the global variable and use the right one at each place.
> 
> Signed-off-by: Peter Xu <peterx@redhat.com>

Reviewed-by: Mike Rapoport (IBM) <rppt@kernel.org>

> ---
>  tools/testing/selftests/mm/uffd-common.c | 7 ++++---
>  tools/testing/selftests/mm/uffd-common.h | 2 +-
>  tools/testing/selftests/mm/uffd-stress.c | 6 +++---
>  3 files changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/tools/testing/selftests/mm/uffd-common.c b/tools/testing/selftests/mm/uffd-common.c
> index a2b6e4957d0f..025e40ffc7bf 100644
> --- a/tools/testing/selftests/mm/uffd-common.c
> +++ b/tools/testing/selftests/mm/uffd-common.c
> @@ -10,7 +10,7 @@
>  #define BASE_PMD_ADDR ((void *)(1UL << 30))
> 
>  volatile bool test_uffdio_copy_eexist = true;
> -unsigned long nr_cpus, nr_pages, nr_pages_per_cpu, page_size, hpage_size;
> +unsigned long nr_cpus, nr_pages, nr_pages_per_cpu, page_size;
>  char *area_src, *area_src_alias, *area_dst, *area_dst_alias, *area_remap;
>  int uffd = -1, uffd_flags, finished, *pipefd, test_type;
>  bool map_shared, test_collapse, test_dev_userfaultfd;
> @@ -115,7 +115,7 @@ static void shmem_release_pages(char *rel_area)
>  static void shmem_allocate_area(void **alloc_area, bool is_src)
>  {
>  	void *area_alias = NULL;
> -	size_t bytes = nr_pages * page_size;
> +	size_t bytes = nr_pages * page_size, hpage_size = read_pmd_pagesize();
>  	unsigned long offset = is_src ? 0 : bytes;
>  	char *p = NULL, *p_alias = NULL;
>  	int mem_fd = uffd_mem_fd_create(bytes * 2, false);
> @@ -159,7 +159,8 @@ static void shmem_alias_mapping(__u64 *start, size_t len, unsigned long offset)
> 
>  static void shmem_check_pmd_mapping(void *p, int expect_nr_hpages)
>  {
> -	if (!check_huge_shmem(area_dst_alias, expect_nr_hpages, hpage_size))
> +	if (!check_huge_shmem(area_dst_alias, expect_nr_hpages,
> +			      read_pmd_pagesize()))
>  		err("Did not find expected %d number of hugepages",
>  		    expect_nr_hpages);
>  }
> diff --git a/tools/testing/selftests/mm/uffd-common.h b/tools/testing/selftests/mm/uffd-common.h
> index 0dfab7057295..47565b2f2dee 100644
> --- a/tools/testing/selftests/mm/uffd-common.h
> +++ b/tools/testing/selftests/mm/uffd-common.h
> @@ -85,7 +85,7 @@ struct uffd_test_ops {
>  };
>  typedef struct uffd_test_ops uffd_test_ops_t;
> 
> -extern unsigned long nr_cpus, nr_pages, nr_pages_per_cpu, page_size, hpage_size;
> +extern unsigned long nr_cpus, nr_pages, nr_pages_per_cpu, page_size;
>  extern char *area_src, *area_src_alias, *area_dst, *area_dst_alias, *area_remap;
>  extern int uffd, uffd_flags, finished, *pipefd, test_type;
>  extern bool map_shared, test_collapse, test_dev_userfaultfd;
> diff --git a/tools/testing/selftests/mm/uffd-stress.c b/tools/testing/selftests/mm/uffd-stress.c
> index 4eca1a0276c2..54fc9b4ffa3c 100644
> --- a/tools/testing/selftests/mm/uffd-stress.c
> +++ b/tools/testing/selftests/mm/uffd-stress.c
> @@ -655,7 +655,7 @@ static int userfaultfd_minor_test(void)
> 
>  		uffd_test_ops->check_pmd_mapping(area_dst,
>  						 nr_pages * page_size /
> -						 hpage_size);
> +						 read_pmd_pagesize());
>  		/*
>  		 * This won't cause uffd-fault - it purely just makes sure there
>  		 * was no corruption.
> @@ -997,7 +997,7 @@ static void parse_test_type_arg(const char *raw_type)
>  		err("Unsupported test: %s", raw_type);
> 
>  	if (test_type == TEST_HUGETLB)
> -		page_size = hpage_size;
> +		page_size = default_huge_page_size();
>  	else
>  		page_size = sysconf(_SC_PAGE_SIZE);
> 
> @@ -1035,6 +1035,7 @@ static void sigalrm(int sig)
>  int main(int argc, char **argv)
>  {
>  	size_t bytes;
> +	size_t hpage_size = read_pmd_pagesize();
> 
>  	if (argc < 4)
>  		usage();
> @@ -1043,7 +1044,6 @@ int main(int argc, char **argv)
>  		err("failed to arm SIGALRM");
>  	alarm(ALARM_INTERVAL_SECS);
> 
> -	hpage_size = default_huge_page_size();
>  	parse_test_type_arg(argv[1]);
>  	bytes = atol(argv[2]) * 1024 * 1024;
> 
> -- 
> 2.39.1
> 

-- 
Sincerely yours,
Mike.


  reply	other threads:[~2023-04-11 10:41 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-30 15:56 [PATCH 00/29] selftests/mm: Split / Refactor userfault test Peter Xu
2023-03-30 15:56 ` [PATCH 01/29] Revert "userfaultfd: don't fail on unrecognized features" Peter Xu
2023-03-30 18:31   ` David Hildenbrand
2023-03-30 22:22     ` Peter Xu
2023-03-30 19:04   ` Axel Rasmussen
2023-03-30 22:27     ` Peter Xu
2023-03-31 16:52       ` Axel Rasmussen
2023-03-31 18:08         ` Dmitry Safonov
2023-03-31 20:04           ` Axel Rasmussen
2023-04-03  7:48     ` David Hildenbrand
2023-03-30 16:06 ` [PATCH 02/29] selftests/mm: Update .gitignore with two missing tests Peter Xu
2023-04-03  7:48   ` David Hildenbrand
2023-04-07  9:09   ` Mike Rapoport
2023-03-30 16:06 ` [PATCH 03/29] selftests/mm: Dump a summary in run_vmtests.sh Peter Xu
2023-03-30 19:07   ` Axel Rasmussen
2023-03-30 22:28     ` Peter Xu
2023-04-03  7:49       ` David Hildenbrand
2023-04-07  9:15   ` Mike Rapoport
2023-03-30 16:06 ` [PATCH 04/29] selftests/mm: Merge util.h into vm_util.h Peter Xu
2023-03-30 19:14   ` Axel Rasmussen
2023-04-03  7:50   ` David Hildenbrand
2023-04-07  9:18   ` Mike Rapoport
2023-03-30 16:06 ` [PATCH 05/29] selftests/mm: Use TEST_GEN_PROGS where proper Peter Xu
2023-04-03  7:52   ` David Hildenbrand
2023-04-07  9:22   ` Mike Rapoport
2023-03-30 16:07 ` [PATCH 06/29] selftests/mm: Link vm_util.c always Peter Xu
2023-04-03  7:52   ` David Hildenbrand
2023-04-07  9:23   ` Mike Rapoport
2023-03-30 16:07 ` [PATCH 07/29] selftests/mm: Merge default_huge_page_size() into one Peter Xu
2023-03-30 20:30   ` Axel Rasmussen
2023-03-31 18:15   ` Mike Kravetz
2023-04-03 15:16     ` Peter Xu
2023-04-03  7:53   ` David Hildenbrand
2023-04-07  9:24   ` Mike Rapoport
2023-03-30 16:07 ` [PATCH 08/29] selftests/mm: Use PM_* macros in vm_utils.h Peter Xu
2023-03-31 18:24   ` Mike Kravetz
2023-04-03  7:53   ` David Hildenbrand
2023-04-07  9:28   ` Mike Rapoport
2023-03-30 16:07 ` [PATCH 09/29] selftests/mm: Reuse pagemap_get_entry() in vm_util.h Peter Xu
2023-03-30 21:08   ` Axel Rasmussen
2023-03-31 18:27   ` Mike Kravetz
2023-04-03  7:54   ` David Hildenbrand
2023-04-07  9:32   ` Mike Rapoport
2023-03-30 16:07 ` [PATCH 10/29] selftests/mm: Test UFFDIO_ZEROPAGE only when !hugetlb Peter Xu
2023-03-31 18:37   ` Mike Kravetz
2023-04-01  1:57     ` Axel Rasmussen
2023-04-03  7:55       ` David Hildenbrand
2023-04-03 16:10         ` Peter Xu
2023-04-07  9:42           ` Mike Rapoport
2023-04-11 19:03             ` Peter Xu
2023-03-30 16:07 ` [PATCH 11/29] selftests/mm: Drop test_uffdio_zeropage_eexist Peter Xu
2023-04-01  0:03   ` Mike Kravetz
2023-04-03 16:16     ` Peter Xu
2023-04-03  7:56   ` David Hildenbrand
2023-04-07  9:48   ` Mike Rapoport
2023-03-30 16:07 ` [PATCH 12/29] selftests/mm: Create uffd-common.[ch] Peter Xu
2023-04-07 10:10   ` Mike Rapoport
2023-03-30 16:07 ` [PATCH 13/29] selftests/mm: Split uffd tests into uffd-stress and uffd-unit-tests Peter Xu
2023-04-07 11:02   ` Mike Rapoport
2023-03-30 16:07 ` [PATCH 14/29] selftests/mm: uffd_[un]register() Peter Xu
2023-04-05 19:12   ` Peter Xu
2023-04-07 11:08   ` Mike Rapoport
2023-04-11 19:13     ` Peter Xu
2023-04-12 16:42       ` Mike Rapoport
2023-03-30 16:07 ` [PATCH 15/29] selftests/mm: uffd_open_{dev|sys}() Peter Xu
2023-04-03  8:00   ` David Hildenbrand
2023-04-07 11:11   ` Mike Rapoport
2023-03-30 16:07 ` [PATCH 16/29] selftests/mm: UFFDIO_API test Peter Xu
2023-04-03  7:59   ` David Hildenbrand
2023-04-03 16:43     ` Peter Xu
2023-04-03 19:06       ` David Hildenbrand
2023-04-03 20:24         ` Peter Xu
2023-04-04 12:48           ` David Hildenbrand
2023-04-05 16:21   ` Peter Xu
2023-03-30 16:08 ` [PATCH 17/29] selftests/mm: Drop global mem_fd in uffd tests Peter Xu
2023-04-11 10:39   ` Mike Rapoport
2023-03-30 16:08 ` [PATCH 18/29] selftests/mm: Drop global hpage_size " Peter Xu
2023-04-11 10:41   ` Mike Rapoport [this message]
2023-03-30 16:08 ` [PATCH 19/29] selftests/mm: Let uffd_handle_page_fault() takes wp parameter Peter Xu
2023-04-11 10:52   ` Mike Rapoport
2023-04-11 19:36     ` Peter Xu
2023-03-30 16:08 ` [PATCH 20/29] selftests/mm: Allow allocate_area() to fail properly Peter Xu
2023-04-11 11:02   ` Mike Rapoport
2023-04-11 19:42     ` Peter Xu
2023-03-30 16:08 ` [PATCH 21/29] selftests/mm: Add framework for uffd-unit-test Peter Xu
2023-04-11 11:09   ` Mike Rapoport
2023-04-11 20:09     ` Peter Xu
2023-03-30 16:08 ` [PATCH 22/29] selftests/mm: Move uffd pagemap test to unit test Peter Xu
2023-04-11 12:41   ` Mike Rapoport
2023-03-30 16:08 ` [PATCH 23/29] selftests/mm: Move uffd minor " Peter Xu
2023-03-30 16:08 ` [PATCH 24/29] selftests/mm: Move uffd sig/events tests into uffd unit tests Peter Xu
2023-03-30 16:08 ` [PATCH 25/29] selftests/mm: Move zeropage test " Peter Xu
2023-03-30 16:08 ` [PATCH 26/29] selftests/mm: Workaround no way to detect uffd-minor + wp Peter Xu
2023-03-30 16:08 ` [PATCH 27/29] selftests/mm: Allow uffd test to skip properly with no privilege Peter Xu
2023-03-30 16:08 ` [PATCH 28/29] selftests/mm: Drop sys/dev test in uffd-stress test Peter Xu
2023-03-30 16:08 ` [PATCH 29/29] selftests/mm: Add shmem-private test to uffd-stress Peter Xu
2023-03-31 16:47 ` [PATCH 00/29] selftests/mm: Split / Refactor userfault test Peter Xu

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=ZDU5Wq5TXKyragOa@linux.ibm.com \
    --to=rppt@linux.ibm.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=axelrasmussen@google.com \
    --cc=david@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lsoaresp@redhat.com \
    --cc=mike.kravetz@oracle.com \
    --cc=nadav.amit@gmail.com \
    --cc=peterx@redhat.com \
    --cc=rppt@linux.vnet.ibm.com \
    /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.