Hi Linus, please pull from: git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-for-4.18 ...to receive the first part of the libnvdimm / persistent memory support update for 4.18. These patches have all been in -next for several releases. The 'DAX DMA vs Truncate' work has had extra soak time as it nearly missed 4.17. This pull request adds a user for the new 'bytes-remaining' updates to memcpy+AF8-mcsafe() that you already received through Ingo via the x86-dax- for-linus pull. There is a minor collision with bdev+AF8-dax+AF8-supported() reworks that you pulled from xfs, and another minor collision of the vm+AF8-fault+AF8-t conversion you received from Andrew. A potential merge resolution is here: https://git.kernel.org/pub/scm/linux/kernel/git/nvd imm/nvdimm.git/log/?h+AD0-libnvdimm-for-4.18-merge Not included in this pull, but still targeting this cycle, is support for handling memory media errors (poison) consumed via userspace dax mappings. --- The following changes since commit b04e217704b7f879c6b91222b066983a44a7a09f: Linux 4.17-rc7 (2018-05-27 13:01:47 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-for-4.18 for you to fetch changes up to 930218affeadd1325ea17e053f0dcecf218f5a4f: Merge branch 'for-4.18/mcsafe' into libnvdimm-for-next (2018-06-08 15:16:44 -0700) ---------------------------------------------------------------- libnvdimm for 4.18 +ACo- DAX broke a fundamental assumption of truncate of file mapped pages. The truncate path assumed that it is safe to disconnect a pinned page from a file and let the filesystem reclaim the physical block. With DAX the page is equivalent to the filesystem block. Introduce dax+AF8-layout+AF8-busy+AF8-page() to enable filesystems to wait for pinned DAX pages to be released. Without this wait a filesystem could allocate blocks under active device-DMA to a new file. +ACo- DAX arranges for the block layer to be bypassed and uses dax+AF8-direct+AF8-access() +- copy+AF8-to+AF8-iter() to satisfy read(2) calls. However, the memcpy+AF8-mcsafe() facility is available through the pmem block driver. In order to safely handle media errors, via the DAX block-layer bypass, introduce copy+AF8-to+AF8-iter+AF8-mcsafe(). +ACo- Fix cache management policy relative to the ACPI NFIT Platform Capabilities Structure to properly elide cache flushes when they are not necessary. The table indicates whether CPU caches are power-fail protected. Clarify that a deep flush is always performed on REQ+AF8Aew-FUA,PREFLUSH+AH0- requests. ---------------------------------------------------------------- Dan Williams (17): memremap: split devm+AF8-memremap+AF8-pages() and memremap() infrastructure mm: introduce MEMORY+AF8-DEVICE+AF8-FS+AF8-DAX and CONFIG+AF8-DEV+AF8-PAGEMAP+AF8-OPS mm: fix +AF8AXw-gup+AF8-device+AF8-huge vs unmap mm, fs, dax: handle layout changes to pinned dax mappings xfs: prepare xfs+AF8-break+AF8-layouts() to be called with XFS+AF8-MMAPLOCK+AF8-EXCL xfs: prepare xfs+AF8-break+AF8-layouts() for another layout type xfs, dax: introduce xfs+AF8-break+AF8-dax+AF8-layouts() uio, lib: Fix CONFIG+AF8-ARCH+AF8-HAS+AF8-UACCESS+AF8-MCSAFE compilation dax: Introduce a -+AD4-copy+AF8-to+AF8-iter dax operation dax: Report bytes remaining in dax+AF8-iomap+AF8-actor() pmem: Switch to copy+AF8-to+AF8-iter+AF8-mcsafe() x86, nfit+AF8-test: Add unit test for memcpy+AF8-mcsafe() libnvdimm: Debug probe times libnvdimm, e820: Register all pmem resources acpi, nfit: Remove ecc+AF8-unit+AF8-size Merge branch 'for-4.18/dax' into libnvdimm-for-next Merge branch 'for-4.18/mcsafe' into libnvdimm-for-next Matthew Wilcox (1): dax: dax+AF8-insert+AF8-mapping+AF8-entry always succeeds Robert Elliott (1): linvdimm, pmem: Preserve read-only setting for pmem devices Ross Zwisler (4): libnvdimm, pmem: Complete REQ+AF8-FLUSH +AD0APg- REQ+AF8-PREFLUSH libnvdimm, pmem: Unconditionally deep flush on +ACo-sync libnvdimm, pmem: Do not flush power-fail protected CPU caches dax: Use dax+AF8-write+AF8-cache+ACo- helpers Documentation/ABI/removed/sysfs-bus-nfit +AHw- 17 +-+-+- Documentation/ABI/testing/sysfs-bus-nfit +AHw- 19 --- arch/x86/Kconfig +AHw- 1 +- arch/x86/Kconfig.debug +AHw- 3 +- arch/x86/include/asm/mcsafe+AF8-test.h +AHw- 75 +-+-+-+-+-+-+-+-+-+-+- arch/x86/include/asm/string+AF8-64.h +AHw- 10 +-- arch/x86/include/asm/uaccess+AF8-64.h +AHw- 14 +-+-+- arch/x86/lib/memcpy+AF8-64.S +AHw- 112 +-+-+-+-+-+-+-+---------- arch/x86/lib/usercopy+AF8-64.c +AHw- 21 +-+-+-+- drivers/acpi/nfit/core.c +AHw- 11 -- drivers/dax/super.c +AHw- 33 +-+-+--- drivers/md/dm-linear.c +AHw- 16 +-+-+- drivers/md/dm-log-writes.c +AHw- 15 +-+-+- drivers/md/dm-stripe.c +AHw- 21 +-+-+-+- drivers/md/dm.c +AHw- 25 +-+-+-+- drivers/nvdimm/bus.c +AHw- 19 +-+-- drivers/nvdimm/claim.c +AHw- 3 +-- drivers/nvdimm/e820.c +AHw- 41 +-+-+---- drivers/nvdimm/pfn+AF8-devs.c +AHw- 2 - drivers/nvdimm/pmem.c +AHw- 52 +-+-+-+-+-+--- drivers/nvdimm/region+AF8-devs.c +AHw- 3 +-- drivers/s390/block/dcssblk.c +AHw- 7 +-+- fs/Kconfig +AHw- 1 +- fs/dax.c +AHw- 136 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+----- fs/xfs/xfs+AF8-file.c +AHw- 72 +-+-+-+-+-+-+-+-+-+-- fs/xfs/xfs+AF8-inode.h +AHw- 16 +-+-+- fs/xfs/xfs+AF8-ioctl.c +AHw- 8 +-- fs/xfs/xfs+AF8-iops.c +AHw- 16 +-+-- fs/xfs/xfs+AF8-pnfs.c +AHw- 15 +--- fs/xfs/xfs+AF8-pnfs.h +AHw- 5 +-- include/linux/dax.h +AHw- 12 +-+- include/linux/device-mapper.h +AHw- 5 +-- include/linux/memremap.h +AHw- 36 +-+----- include/linux/mm.h +AHw- 71 +-+-+-+-+-+-+-+---- include/linux/string.h +AHw- 4 +-- include/linux/uio.h +AHw- 15 +-+-+- kernel/Makefile +AHw- 3 +-- kernel/iomem.c +AHw- 167 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- kernel/memremap.c +AHw- 210 +-+-+-+-+--------------------------- kernel/resource.c +AHw- 1 +- lib/Kconfig +AHw- 3 +- lib/iov+AF8-iter.c +AHw- 61 +-+-+-+-+-+-+-+-+- mm/Kconfig +AHw- 5 +- mm/gup.c +AHw- 36 +-+-+-+--- mm/hmm.c +AHw- 13 +-- mm/swap.c +AHw- 3 +-- tools/testing/nvdimm/test/nfit.c +AHw- 104 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 47 files changed, 1092 insertions(+-), 446 deletions(-) create mode 100644 Documentation/ABI/removed/sysfs-bus-nfit create mode 100644 arch/x86/include/asm/mcsafe+AF8-test.h create mode 100644 kernel/iomem.c -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html