[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAA9mObDx=oDeRAGJSdY3crMAYY=qn0-v2ZH9vsxkv3NcgUCL-Q@mail.gmail.com>
Date: Mon, 4 Aug 2025 18:59:40 -0700
From: Sudarsan Mahendran <sudarsanm@...gle.com>
To: David Hildenbrand <david@...hat.com>
Cc: linux-kselftest@...r.kernel.org, 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 Mon, Aug 4, 2025 at 1:25 AM David Hildenbrand <david@...hat.com> wrote:
>
> 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().
>
Done. Sent v3 patch for review.
>
> 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