lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8c609741-c2b8-426c-8f83-8a79022b67d7@redhat.com>
Date: Mon, 4 Aug 2025 10:25:52 +0200
From: David Hildenbrand <david@...hat.com>
To: Sudarsan Mahendran <sudarsanm@...gle.com>, linux-kselftest@...r.kernel.org
Cc: Shuah Khan <shuah@...nel.org>, Axel Rasmussen <axelrasmussen@...gle.com>,
 linux-mm@...ck.org, Andrew Morton <akpm@...ux-foundation.org>,
 linux-kernel@...r.kernel.org, trivial@...nel.org
Subject: Re: [PATCH v2] selftests/mm: pass filename as input param to
 VM_PFNMAP tests

On 02.08.25 01:45, Sudarsan Mahendran wrote:
> Enable these tests to be run on other pfnmap'ed memory like
> NVIDIA's EGM.
> 
> Add '--' as a separator to pass in file path. This allows
> passing of cmd line arguments to kselftest_harness.
> Use '/dev/mem' as default filename.
> 
> Existing test passes:
> 	pfnmap
> 	TAP version 13
> 	1..6
> 	# Starting 6 tests from 1 test cases.
> 	# PASSED: 6 / 6 tests passed.
> 	# Totals: pass:6 fail:0 xfail:0 xpass:0 skip:0 error:0
> 
> Pass params to kselftest_harness:
> 	pfnmap -r pfnmap:mremap_fixed
> 	TAP version 13
> 	1..1
> 	# Starting 1 tests from 1 test cases.
> 	#  RUN           pfnmap.mremap_fixed ...
> 	#            OK  pfnmap.mremap_fixed
> 	ok 1 pfnmap.mremap_fixed
> 	# PASSED: 1 / 1 tests passed.
> 	# Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0
> 
> Pass non-existent file name as input:
> 	pfnmap -- /dev/blah
> 	TAP version 13
> 	1..6
> 	# Starting 6 tests from 1 test cases.
> 	#  RUN           pfnmap.madvise_disallowed ...
> 	#      SKIP      Cannot open '/dev/blah'
> 
> Pass non pfnmap'ed file as input:
> 	pfnmap -r pfnmap.madvise_disallowed -- randfile
> 	TAP version 13
> 	1..1
> 	# Starting 1 tests from 1 test cases.
> 	#  RUN           pfnmap.madvise_disallowed ...
> 	#      SKIP      Invalid file: 'randfile'. Not pfnmap'ed
> 
> Signed-off-by: Sudarsan Mahendran <sudarsanm@...gle.com>
> ---
> 
> v1 -> v2:
> * Add verify_pfnmap func to sanity check the input param
> * mmap with zero offset if filename != '/dev/mem'
> 
> ---
>   tools/testing/selftests/mm/pfnmap.c | 62 ++++++++++++++++++++++++-----
>   1 file changed, 53 insertions(+), 9 deletions(-)
> 
> diff --git a/tools/testing/selftests/mm/pfnmap.c b/tools/testing/selftests/mm/pfnmap.c
> index 866ac023baf5..e078b961c333 100644
> --- a/tools/testing/selftests/mm/pfnmap.c
> +++ b/tools/testing/selftests/mm/pfnmap.c
> @@ -1,6 +1,7 @@
>   // SPDX-License-Identifier: GPL-2.0-only
>   /*
> - * Basic VM_PFNMAP tests relying on mmap() of '/dev/mem'
> + * Basic VM_PFNMAP tests relying on mmap() of input file provided.
> + * Use '/dev/mem' as default.
>    *
>    * Copyright 2025, Red Hat, Inc.
>    *
> @@ -25,6 +26,7 @@
>   #include "vm_util.h"
>   
>   static sigjmp_buf sigjmp_buf_env;
> +static char *file = "/dev/mem";
>   
>   static void signal_handler(int sig)
>   {
> @@ -98,6 +100,30 @@ static int find_ram_target(off_t *phys_addr,
>   	return -ENOENT;
>   }
>   
> +static int verify_pfnmap(void)

You really want to pass in the address, and verify that that very 
mapping is a PFNMAP. (not something unrelated, like the vdso or 
something odd like that)

We have a helper in vm_util.c that might be useful: __get_smap_entry()

We also have a check_vmflag_io() in there. So likely you want to add a 
helper check_vmflag_pfnmap().


Nothing else jumped at me, except that phys_addr might be better called 
something like "offset" now.

-- 
Cheers,

David / dhildenb


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ