Re: [PATCH v5 02/24] mm: remove extra ZONE_DEVICE struct page refcount

From: Ralph Campbell
Date: Fri Jan 28 2022 - 12:16:35 EST



On 1/28/22 06:21, Jason Gunthorpe wrote:
On Thu, Jan 27, 2022 at 05:25:52PM -0700, Logan Gunthorpe wrote:
From: Ralph Campbell <rcampbell@xxxxxxxxxx>

ZONE_DEVICE struct pages have an extra reference count that complicates the
code for put_page() and several places in the kernel that need to check the
reference count to see that a page is not being used (gup, compaction,
migration, etc.). Clean up the code so the reference count doesn't need to
be treated specially for ZONE_DEVICE.

[logang: dropped no longer used section from mm.h including
page_is_devmap_managed, rebased on v5.17-rc1 (possibly poorly)]
Signed-off-by: Ralph Campbell <rcampbell@xxxxxxxxxx>
Signed-off-by: Alex Sierra <alex.sierra@xxxxxxx>
Signed-off-by: Logan Gunthorpe <logang@xxxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
---
arch/powerpc/kvm/book3s_hv_uvmem.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_dmem.c | 2 +-
fs/dax.c | 4 +-
include/linux/dax.h | 2 +-
include/linux/memremap.h | 7 +--
include/linux/mm.h | 44 ----------------
lib/test_hmm.c | 2 +-
mm/internal.h | 8 +++
mm/memcontrol.c | 6 +--
mm/memremap.c | 70 +++++++-------------------
mm/migrate.c | 5 --
mm/page_alloc.c | 3 ++
mm/swap.c | 45 ++---------------
13 files changed, 46 insertions(+), 154 deletions(-)
This patch still can't be applied until the FSDAX issues are solved,
right? See my remarks the last time it was posted..

Jason

That is my understanding too.