Hi Dan,
On 06.06.25 01:47, Dan Williams wrote:
David Hildenbrand wrote:
Based on Linus' master.
While working on improving vm_normal_page() and friends, I stumbled
over this issues: refcounted "normal" pages must not be marked
using pmd_special() / pud_special().
Fortunately, so far there doesn't seem to be serious damage.
This is only compile-tested so far. Still looking for an easy way to test
PMD/PUD mappings with DAX. Any tests I can easily run?
The way I test this I would not classify as "easy", it is a bit of a pain
to setup, but it is passing here:
I guess most of the instructions are in
https://github.com/pmem/ndctl
?
I would assume that we need to set aside some special dax area using
early boot params (memmap=).
Might come in handy in the future.
[root@host ndctl]# meson test -C build --suite ndctl:dax
ninja: Entering directory `/root/git/ndctl/build'
[168/168] Linking target cxl/cxl
1/13 ndctl:dax / daxdev-errors.sh OK 14.30s
2/13 ndctl:dax / multi-dax.sh OK 2.89s
3/13 ndctl:dax / sub-section.sh OK 8.40s
4/13 ndctl:dax / dax-dev OK 0.06s
5/13 ndctl:dax / dax-ext4.sh OK 20.53s
6/13 ndctl:dax / dax-xfs.sh OK 20.34s
7/13 ndctl:dax / device-dax OK 11.67s
8/13 ndctl:dax / revoke-devmem OK 0.25s
9/13 ndctl:dax / device-dax-fio.sh OK 34.02s
10/13 ndctl:dax / daxctl-devices.sh OK 3.44s
11/13 ndctl:dax / daxctl-create.sh SKIP 0.32s exit
status 77
12/13 ndctl:dax / dm.sh OK 1.33s
13/13 ndctl:dax / mmap.sh OK 85.12s
...ignore the SKIP, that seems to be caused by an acpi-einj regression.
Thanks for running these tests!
However, how about not duplicating the internals of insert_pfn_p[mu]d()
with something like the below. Either way you can add:
I considered that, but I prefer the current end result where we cleanup
the pmd_none() handling and not mess with folios and pfns at the same time.
... just like we do for insert_pfn() vs. insert_page(), I don't think
these code paths should be unified.
(we should do more sanity checks like validate_page_before_insert()
etc., but that's something for another day :) )
Tested-by: Dan Williams <dan.j.willi...@intel.com>
Reviewed-by: Dan Williams <dan.j.willi...@intel.com>
Thanks!
Let me resend with the fixup squashed.
--
Cheers,
David / dhildenb