Re: [PATCH v4 0/7] mm/mprotect: Fix dax puds

Peter Xu
2024-08-07T21:47:25Z

On Wed, Aug 07, 2024 at 02:23:16PM -0700, Andrew Morton wrote:
> On Wed, 7 Aug 2024 15:48:04 -0400 Peter Xu <peterx@redhat.com> wrote:
>
> >
> > Tests
> > =====
> >
> > What I did test:
> >
> > - cross-build tests that I normally cover [1]
> >
> > - smoke tested on x86_64 the simplest program [2] on dev_dax 1G PUD
> > mprotect() using QEMU's nvdimm emulations [3] and ndctl to create
> > namespaces with proper alignments, which used to throw "bad pud" but now
> > it'll run through all fine. I checked sigbus happens if with illegal
> > access on protected puds.
> >
> > - vmtests.
> >
> > What I didn't test:
> >
> > - fsdax: I wanted to also give it a shot, but only until then I noticed it
> > doesn't seem to be supported (according to dax_iomap_fault(), which will
> > always fallback on PUD_ORDER). I did remember it was supported before, I
> > could miss something important there.. please shoot if so.
>
> OK. Who are you addressing this question to?

Anyone who is familiar with fsdax + 1g. Maybe Matthew would be the most
suitable, but I didn't track further on fsdax.

>
> > - userfault wp-async: I also wanted to test userfault-wp async be able to
> > split huge puds (here it's simply a clear_pud.. though), but it won't
> > work for devdax anyway due to not allowed to do smaller than 1G faults in
> > this case. So skip too.
>
> Sounds OK. So that's an additional project if anyone cares enough?

Right.

>
> > - Power, as no hardware on hand.
>
> Hopefully the powerpc people can help with that. What tests do you ask
> that they run?

The test program [2] in cover letter should work as a very basic test; one
needs to setup the dax device to use 1g mapping first, though:

[2] https://github.com/xzpeter/clibs/blob/master/misc/dax.c

At least per my experience not much fancy things we can do there, e.g., I
think at least dev_dax has a limitation on vma split that it must be 1g
aligned when use 1g mappings, so even split can't happen (as iirc I used to
try some random mprotect on smaller ranges)..

Thanks,

--
Peter Xu