2018-02-06 00:08:22

by Ross Zwisler

[permalink] [raw]
Subject: [GIT PULL] libnvdimm for 4.16

Hi Linus, please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-for-4.16

...to receive the libnvdimm update for 4.16.

All of these commits have shipped in -next and have received build verification
notices from 0day.

There is one small merge conflict that Michael Ellerman also noted in his pull
request. In Michael's tree the axonram driver was removed, and in our tree it
received two small updates. The merge can be trivially resolved by just
keeping the driver removed per Michael's tree.

Regarding the vmem_altmap patches, Michal Hocko took a quick look and while it
wasn't a full review he has future plans to reuse vmem_altmap in wider places
in the memory hotplug code, so he's in favor of getting it properly plumbed.

In case you wanted to inspect them or verify the merge I've also pushed the
three topic branches for this cycle to our nvdimm tree:

for-4.16/nfit
for-4.16/libnvdimm
for-4.16/dax

---

The following changes since commit a7f2766ac7c359216da4e714dc117c881e39a74a:

Merge branches 'acpi-gpio', 'acpi-button', 'acpi-battery' and 'acpi-video' (2018-01-18 03:02:16 +0100)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-for-4.16

for you to fetch changes up to ee95f4059a833839bf52972191b2d4c3d3cec552:

Merge branch 'for-4.16/nfit' into libnvdimm-for-next (2018-02-03 00:26:26 -0700)

----------------------------------------------------------------
libnvdimm for 4.16

* Require struct page by default for filesystem DAX to remove a number of
surprising failure cases. This includes failures with direct I/O, gdb and
fork(2).

* Add support for the new Platform Capabilities Structure added to the NFIT in
ACPI 6.2a. This new table tells us whether the platform supports flushing
of CPU and memory controller caches on unexpected power loss events.

* Revamp vmem_altmap and dev_pagemap handling to clean up code and better
support future future PCI P2P uses.

* Deprecate the ND_IOCTL_SMART_THRESHOLD command whose payload has become
out-of-sync with recent versions of the NVDIMM_FAMILY_INTEL spec, and
instead rely on the generic ND_CMD_CALL approach used by the two other IOCTL
families, NVDIMM_FAMILY_{HPE,MSFT}.

* Enhance nfit_test so we can test some of the new things added in version 1.6
of the DSM specification. This includes testing firmware download and
simulating the Last Shutdown State (LSS) status.

----------------------------------------------------------------
Christoph Hellwig (16):
memremap: provide stubs for vmem_altmap_offset and vmem_altmap_free
mm: don't export arch_add_memory
mm: don't export __add_pages
mm: pass the vmem_altmap to arch_add_memory and __add_pages
mm: pass the vmem_altmap to vmemmap_populate
mm: pass the vmem_altmap to arch_remove_memory and __remove_pages
mm: pass the vmem_altmap to vmemmap_free
mm: pass the vmem_altmap to memmap_init_zone
mm: split altmap memory map allocation from normal case
mm: merge vmem_altmap_alloc into altmap_alloc_block_buf
mm: move get_dev_pagemap out of line
mm: optimize dev_pagemap reference counting around get_dev_pagemap
memremap: remove to_vmem_altmap
memremap: simplify duplicate region handling in devm_memremap_pages
memremap: change devm_memremap_pages interface to use struct dev_pagemap
memremap: merge find_dev_pagemap into get_dev_pagemap

Colin Ian King (1):
libnvdimm, namespace: remove redundant initialization of 'nd_mapping'

Dan Williams (8):
nfit, libnvdimm: deprecate the generic SMART ioctl
tools/testing/nvdimm: smart alarm/threshold control
mm, dax: introduce pfn_t_special()
ext4: auto disable dax instead of failing mount
ext2: auto disable dax instead of failing mount
dax: require 'struct page' by default for filesystem dax
tools/testing/nvdimm: force nfit_test to depend on instrumented modules
libnvdimm, namespace: make min namespace size 4K

Dave Jiang (6):
acpi: nfit: Add support for detect platform CPU cache flush on power loss
acpi: nfit: add persistent memory control flag for nd_region
libnvdimm: expose platform persistence attribute for nd_region
nfit-test: Add platform cap support from ACPI 6.2a to test
libnvdimm/nfit_test: add firmware download emulation
libnvdimm/nfit_test: adding support for unit testing enable LSS status

Jan H. Sch?nherr (2):
mm: Fix memory size alignment in devm_memremap_pages_release()
mm: Fix devm_memremap_pages() collision handling

Jeff Moyer (1):
libnvdimm, btt: fix uninitialized err_lock

Logan Gunthorpe (1):
memremap: drop private struct page_map

Luis de Bethencourt (1):
device-dax: Fix trailing semicolon

Ross Zwisler (2):
Merge branch 'for-4.16/dax' into libnvdimm-for-next
Merge branch 'for-4.16/nfit' into libnvdimm-for-next

Toshi Kani (1):
acpi, nfit: fix register dimm error handling

arch/arm64/mm/mmu.c | 9 +-
arch/ia64/mm/discontig.c | 6 +-
arch/ia64/mm/init.c | 18 +-
arch/powerpc/mm/init_64.c | 17 +-
arch/powerpc/mm/mem.c | 11 +-
arch/powerpc/platforms/Kconfig | 1 +
arch/powerpc/sysdev/axonram.c | 2 +-
arch/s390/mm/init.c | 7 +-
arch/s390/mm/vmem.c | 6 +-
arch/sh/mm/init.c | 10 +-
arch/sparc/mm/init_64.c | 5 +-
arch/x86/mm/init_32.c | 9 +-
arch/x86/mm/init_64.c | 94 ++++---
drivers/acpi/nfit/core.c | 26 ++
drivers/acpi/nfit/nfit.h | 1 +
drivers/dax/device.c | 2 +-
drivers/dax/pmem.c | 20 +-
drivers/dax/super.c | 10 +
drivers/nvdimm/btt.c | 2 +-
drivers/nvdimm/bus.c | 3 -
drivers/nvdimm/namespace_devs.c | 2 +-
drivers/nvdimm/nd.h | 9 +-
drivers/nvdimm/pfn_devs.c | 27 +-
drivers/nvdimm/pmem.c | 41 +--
drivers/nvdimm/pmem.h | 1 +
drivers/nvdimm/region_devs.c | 13 +
drivers/s390/block/Kconfig | 1 +
drivers/s390/block/dcssblk.c | 3 +-
fs/Kconfig | 7 +
fs/ext2/super.c | 7 +-
fs/ext4/super.c | 9 +-
include/linux/libnvdimm.h | 11 +
include/linux/memory_hotplug.h | 29 +-
include/linux/memremap.h | 77 ++---
include/linux/mm.h | 22 +-
include/linux/pfn_t.h | 13 +
include/uapi/linux/ndctl.h | 56 +---
kernel/memremap.c | 174 +++++-------
mm/gup.c | 7 +-
mm/hmm.c | 13 +-
mm/memory.c | 16 +-
mm/memory_hotplug.c | 39 ++-
mm/page_alloc.c | 6 +-
mm/sparse-vmemmap.c | 67 ++---
mm/sparse.c | 43 +--
tools/testing/nvdimm/Kbuild | 4 +
tools/testing/nvdimm/acpi_nfit_test.c | 8 +
tools/testing/nvdimm/device_dax_test.c | 8 +
tools/testing/nvdimm/libnvdimm_test.c | 8 +
tools/testing/nvdimm/pmem_test.c | 8 +
tools/testing/nvdimm/test/iomap.c | 7 +-
tools/testing/nvdimm/test/nfit.c | 498 +++++++++++++++++++++++++++++----
tools/testing/nvdimm/test/nfit_test.h | 134 +++++++++
tools/testing/nvdimm/watermark.h | 21 ++
54 files changed, 1122 insertions(+), 526 deletions(-)
create mode 100644 tools/testing/nvdimm/acpi_nfit_test.c
create mode 100644 tools/testing/nvdimm/device_dax_test.c
create mode 100644 tools/testing/nvdimm/libnvdimm_test.c
create mode 100644 tools/testing/nvdimm/pmem_test.c
create mode 100644 tools/testing/nvdimm/watermark.h