On Tue, 24 Sep 2024 15:59:08 -0700 Dan Williams <dan.j.williams@xxxxxxxxx> wrote: > The dcssblk driver has long needed special case supoprt to enable > limited dax operation, so called CONFIG_FS_DAX_LIMITED. This mode > works around the incomplete support for ZONE_DEVICE on s390 by forgoing > the ability of dax-mapped pages to support GUP. > > Now, pending cleanups to fsdax that fix its reference counting [1] depend on > the ability of all dax drivers to supply ZONE_DEVICE pages. > > To allow that work to move forward, dax support needs to be paused for > dcssblk until ZONE_DEVICE support arrives. That work has been known for > a few years [2], and the removal of "pte_devmap" requirements [3] makes the > conversion easier. Thanks, that's great news! Without requiring the extra PTE bit, it should now finally be possible to add struct pages and ZONE_DEVICE support for dcssblk. In the meantime, it is OK to pause the DAX support for dcssblk as you suggested, and finally remove that ugly CONFIG_FS_DAX_LIMITED. Thanks for bearing with us for so long! > > For now, place the support behind CONFIG_BROKEN, and remove PFN_SPECIAL > (dcssblk was the only user). Ok, I guess that PFN_SPECIAL was there because we had no struct pages for the DCSS memory. When we come back, with proper ZONE_DEVICE and struct pages, it should not be needed any more. And yes, the chance to completely remove pfn_t, after Alistair's series, is quite impressive and even more motivation than CONFIG_FS_DAX_LIMITED. > > Link: http://lore.kernel.org/cover.9f0e45d52f5cff58807831b6b867084d0b14b61c.1725941415.git-series.apopple@xxxxxxxxxx [1] > Link: http://lore.kernel.org/20210820210318.187742e8@thinkpad/ [2] > Link: http://lore.kernel.org/4511465a4f8429f45e2ac70d2e65dc5e1df1eb47.1725941415.git-series.apopple@xxxxxxxxxx [3] > Cc: Gerald Schaefer <gerald.schaefer@xxxxxxxxxxxxx> > Cc: Heiko Carstens <hca@xxxxxxxxxxxxx> > Cc: Vasily Gorbik <gor@xxxxxxxxxxxxx> > Cc: Alexander Gordeev <agordeev@xxxxxxxxxxxxx> > Cc: Christian Borntraeger <borntraeger@xxxxxxxxxxxxx> > Cc: Sven Schnelle <svens@xxxxxxxxxxxxx> > Cc: Jan Kara <jack@xxxxxxx> > Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > Cc: Alistair Popple <apopple@xxxxxxxxxx> > Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx> > --- > drivers/s390/block/Kconfig | 12 ++++++++++-- > drivers/s390/block/dcssblk.c | 26 +++++++++++++++++--------- > fs/Kconfig | 9 +-------- > fs/dax.c | 12 ------------ > include/linux/pfn_t.h | 15 --------------- > mm/memory.c | 2 -- > mm/memremap.c | 4 ---- > 7 files changed, 28 insertions(+), 52 deletions(-) When you also remove the now unused dax_dev definition at the top of dcssblk_add_store(), as noticed by kernel test robot: Reviewed-by: Gerald Schaefer <gerald.schaefer@xxxxxxxxxxxxx>