This is v2 of "[PATCH v1 0/2] mm/huge_memory: don't mark refcounted pages special in vmf_insert_folio_*()" Now with one additional fix, based on mm/mm-unstable.
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. I spent too much time trying to get the ndctl tests mentioned by Dan running (.config tweaks, memmap= setup, ... ), without getting them to pass even without these patches. Some SKIP, some FAIL, some sometimes suddenly SKIP on first invocation, ... instructions unclear or the tests are shaky. This is how far I got: # meson test -C build --suite ndctl:dax ninja: Entering directory `/root/ndctl/build' [1/70] Generating version.h with a custom command 1/13 ndctl:dax / daxdev-errors.sh OK 15.08s 2/13 ndctl:dax / multi-dax.sh OK 5.80s 3/13 ndctl:dax / sub-section.sh SKIP 0.39s exit status 77 4/13 ndctl:dax / dax-dev OK 1.37s 5/13 ndctl:dax / dax-ext4.sh OK 32.70s 6/13 ndctl:dax / dax-xfs.sh OK 29.43s 7/13 ndctl:dax / device-dax OK 44.50s 8/13 ndctl:dax / revoke-devmem OK 0.98s 9/13 ndctl:dax / device-dax-fio.sh SKIP 0.10s exit status 77 10/13 ndctl:dax / daxctl-devices.sh SKIP 0.16s exit status 77 11/13 ndctl:dax / daxctl-create.sh FAIL 2.61s exit status 1 12/13 ndctl:dax / dm.sh FAIL 0.23s exit status 1 13/13 ndctl:dax / mmap.sh OK 437.86s So, no idea if this series breaks something, because the tests are rather unreliable. I have plenty of other debug settings on, maybe that's a problem? I guess if the FS tests and mmap test pass, we're mostly good. Cc: Andrew Morton <a...@linux-foundation.org> Cc: Alistair Popple <apop...@nvidia.com> Cc: Lorenzo Stoakes <lorenzo.stoa...@oracle.com> Cc: "Liam R. Howlett" <liam.howl...@oracle.com> Cc: Vlastimil Babka <vba...@suse.cz> Cc: Mike Rapoport <r...@kernel.org> Cc: Suren Baghdasaryan <sur...@google.com> Cc: Michal Hocko <mho...@suse.com> Cc: Zi Yan <z...@nvidia.com> Cc: Baolin Wang <baolin.w...@linux.alibaba.com> Cc: Nico Pache <npa...@redhat.com> Cc: Ryan Roberts <ryan.robe...@arm.com> Cc: Dev Jain <dev.j...@arm.com> Cc: Dan Williams <dan.j.willi...@intel.com> Cc: Oscar Salvador <osalva...@suse.de> v1 -> v2: * "mm/huge_memory: don't ignore queried cachemode in vmf_insert_pfn_pud()" -> Added after stumbling over that * Modified the other tests to reuse the existing function by passing a new struct * Renamed the patches to talk about "folios" instead of pages and adjusted the patch descriptions * Dropped RB/TB from Dan and Oscar due to the changes David Hildenbrand (3): mm/huge_memory: don't ignore queried cachemode in vmf_insert_pfn_pud() mm/huge_memory: don't mark refcounted folios special in vmf_insert_folio_pmd() mm/huge_memory: don't mark refcounted folios special in vmf_insert_folio_pud() include/linux/mm.h | 19 +++++++- mm/huge_memory.c | 110 +++++++++++++++++++++++++++------------------ 2 files changed, 85 insertions(+), 44 deletions(-) -- 2.49.0