Linux ACPI
 help / color / mirror / Atom feed
From: "Williams, Dan J" <dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: "torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org"
	<torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
Cc: "linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org"
	<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>
Subject: [GIT PULL] libnvdimm for 4.18
Date: Fri, 8 Jun 2018 23:58:29 +0000	[thread overview]
Message-ID: <1528502307.25740.14.camel@intel.com> (raw)

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_mcsafe() that you already received through Ingo via the x86-dax-
for-linus pull. There is a minor collision with bdev_dax_supported()
reworks that you pulled from xfs, and another minor collision of the
vm_fault_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=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

* 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_layout_busy_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.

* DAX arranges for the block layer to be bypassed and uses
  dax_direct_access() + copy_to_iter() to satisfy read(2) calls.
  However, the memcpy_mcsafe() facility is available through the pmem
  block driver. In order to safely handle media errors, via the DAX
  block-layer bypass, introduce copy_to_iter_mcsafe().

* 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_{FUA,PREFLUSH} requests.

----------------------------------------------------------------
Dan Williams (17):
      memremap: split devm_memremap_pages() and memremap() infrastructure
      mm: introduce MEMORY_DEVICE_FS_DAX and CONFIG_DEV_PAGEMAP_OPS
      mm: fix __gup_device_huge vs unmap
      mm, fs, dax: handle layout changes to pinned dax mappings
      xfs: prepare xfs_break_layouts() to be called with XFS_MMAPLOCK_EXCL
      xfs: prepare xfs_break_layouts() for another layout type
      xfs, dax: introduce xfs_break_dax_layouts()
      uio, lib: Fix CONFIG_ARCH_HAS_UACCESS_MCSAFE compilation
      dax: Introduce a ->copy_to_iter dax operation
      dax: Report bytes remaining in dax_iomap_actor()
      pmem: Switch to copy_to_iter_mcsafe()
      x86, nfit_test: Add unit test for memcpy_mcsafe()
      libnvdimm: Debug probe times
      libnvdimm, e820: Register all pmem resources
      acpi, nfit: Remove ecc_unit_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_insert_mapping_entry always succeeds

Robert Elliott (1):
      linvdimm, pmem: Preserve read-only setting for pmem devices

Ross Zwisler (4):
      libnvdimm, pmem: Complete REQ_FLUSH => REQ_PREFLUSH
      libnvdimm, pmem: Unconditionally deep flush on *sync
      libnvdimm, pmem: Do not flush power-fail protected CPU caches
      dax: Use dax_write_cache* helpers

 Documentation/ABI/removed/sysfs-bus-nfit |  17 +++
 Documentation/ABI/testing/sysfs-bus-nfit |  19 ---
 arch/x86/Kconfig                         |   1 +
 arch/x86/Kconfig.debug                   |   3 +
 arch/x86/include/asm/mcsafe_test.h       |  75 +++++++++++
 arch/x86/include/asm/string_64.h         |  10 +-
 arch/x86/include/asm/uaccess_64.h        |  14 +++
 arch/x86/lib/memcpy_64.S                 | 112 ++++++++---------
 arch/x86/lib/usercopy_64.c               |  21 ++++
 drivers/acpi/nfit/core.c                 |  11 --
 drivers/dax/super.c                      |  33 +++--
 drivers/md/dm-linear.c                   |  16 +++
 drivers/md/dm-log-writes.c               |  15 +++
 drivers/md/dm-stripe.c                   |  21 ++++
 drivers/md/dm.c                          |  25 ++++
 drivers/nvdimm/bus.c                     |  19 ++-
 drivers/nvdimm/claim.c                   |   3 +-
 drivers/nvdimm/e820.c                    |  41 +++---
 drivers/nvdimm/pfn_devs.c                |   2 -
 drivers/nvdimm/pmem.c                    |  52 ++++++--
 drivers/nvdimm/region_devs.c             |   3 +-
 drivers/s390/block/dcssblk.c             |   7 ++
 fs/Kconfig                               |   1 +
 fs/dax.c                                 | 136 ++++++++++++++++----
 fs/xfs/xfs_file.c                        |  72 ++++++++++-
 fs/xfs/xfs_inode.h                       |  16 +++
 fs/xfs/xfs_ioctl.c                       |   8 +-
 fs/xfs/xfs_iops.c                        |  16 ++-
 fs/xfs/xfs_pnfs.c                        |  15 +--
 fs/xfs/xfs_pnfs.h                        |   5 +-
 include/linux/dax.h                      |  12 ++
 include/linux/device-mapper.h            |   5 +-
 include/linux/memremap.h                 |  36 ++----
 include/linux/mm.h                       |  71 ++++++++---
 include/linux/string.h                   |   4 +-
 include/linux/uio.h                      |  15 +++
 kernel/Makefile                          |   3 +-
 kernel/iomem.c                           | 167 ++++++++++++++++++++++++
 kernel/memremap.c                        | 210 +++++--------------------------
 kernel/resource.c                        |   1 +
 lib/Kconfig                              |   3 +
 lib/iov_iter.c                           |  61 +++++++++
 mm/Kconfig                               |   5 +
 mm/gup.c                                 |  36 ++++--
 mm/hmm.c                                 |  13 +-
 mm/swap.c                                |   3 +-
 tools/testing/nvdimm/test/nfit.c         | 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_test.h
 create mode 100644 kernel/iomem.c

             reply	other threads:[~2018-06-08 23:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-08 23:58 Williams, Dan J [this message]
     [not found] ` <1528502307.25740.14.camel-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-06-09  0:19   ` [GIT PULL] libnvdimm for 4.18 Linus Torvalds
     [not found]     ` <CA+55aFy_fiF2bwW=0gL4g8uL5099hWarL4+Q9djmDEuwRR2KKw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-09  0:26       ` Linus Torvalds
     [not found]         ` <CA+55aFyTXHxaRQhsCwgicFw6=xk80Bjw92tgfmmRP4HQ-AhSvw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-09 15:17           ` Dan Williams
     [not found]             ` <CAPcyv4hPTyfSO5pncQ84cPrTe4sUJ+jA6cMHXm-6ocvLGKr65A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-09 16:26               ` Linus Torvalds
     [not found]                 ` <CA+55aFzW_2iMYDRsz2-z6VvOcFwyuB5_72BAEARzpdG60h0=Zw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-09 16:40                   ` Dan Williams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1528502307.25740.14.camel@intel.com \
    --to=dan.j.williams-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org \
    --cc=torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox