Skip to contentSkip to conversation

libnvdimm for 4.9

GIT PULL Williams, Dan J 1 participant 1 message Oct 11, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hi Linus, please pull from:

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

...to receive the libnvdimm update for 4.9.

Aside from the recently added pmem sub-division support these have been in -next for several releases with no reported issues.  The sub- division support was included in next-20161010 with no reported issues. It passes all unit tests including new tests for all the new functionality below.

The following changes since commit 595c73071e6641e59b83911fbb4026e767471000:

libnvdimm, region: fix flush hint table thinko (2016-09-24 11:45:38 -0700)

are available in the git repository at:

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

for you to fetch changes up to e476f94482fc20a23b7b33b3d8e50f1953f71828:

Merge branch 'for-4.9/dax' into libnvdimm-for-next (2016-10-07 16:46:30 -0700)

----------------------------------------------------------------
libnvdimm for 4.9

* PMEM sub-division support: Allow a single PMEM region to be divided into multiple namespaces. Originally, ~2 years ago, it was thought that partitions of a /dev/pmemX block device could handle sub-allocations of persistent memory for different use cases. With the decision to not support DAX mappings of raw block-devices, and the genesis of device-dax, the need for having multiple pmem-namespace per region has grown.

* Device-DAX unified inode: In support of dynamic-resizing of a device-dax instance the kernel arranges for all mappings of a device-dax node to share the same inode. This allows unmap / truncate / invalidation events to affect all instances of the device similar to the behavior of mmap on block devices.

* Hardware error scrubbing reworks: The original address-range-scrub +- badblocks tracking solution allowed clearing entries at the individual namespace level, but it failed to clear the internal list of media errors maintained at the bus level. The result was that the next scrub or namespace disable/re-enable event would restore the cleared badblocks, but now that is fixed. The v4.8 kernel introduced an auto-scrub-on-machine-check behavior to repopulate the badblocks list. Now, in v4.9, the auto-scrub behavior can be disabled and simply arrange for the error reported in the machine-check to be added to the list.

* DIMM health-event notification support: ACPI 6.1 defines a notification event code that can be send to ACPI NVDIMM devices. A poll(2) capable file descriptor for these events can be obtained from the nmemX/nfit/flags sysfs-attribute of a libnvdimm memory device.

* Miscellaneous fixes: NVDIMM-N probe error, device-dax build error, and a change to dedup the flush hint list to not flush the memory controller more than necessary.

----------------------------------------------------------------
Arnd Bergmann (1):
dax: use correct dev_t value

Dan Williams (31):
libnvdimm: fix SMART Health DSM payload definition tools/testing/nvdimm: unit test for acpi_nfit_notify()
dax: cleanup needlessly global symbol warnings
dax: reorder dax_fops function definitions
dax: rename fops from dax_dev_ to dax_
dax: embed a struct device in dax_dev
dax: convert to the cdev api
dax: define a unified inode/address_space for device-dax mappings
dax: unmap/truncate on device shutdown
dax: check resource alignment at dax region/device create
acpi, nfit: add dimm device notification support tools/testing/nvdimm: unit test for acpi_nvdimm_notify() tools/testing/nvdimm: test get_config_size DSM failures libnvdimm, namespace: debug invalid interleave-set-cookie values libnvdimm, region: move region-mapping input-paramters to nd_mapping_desc libnvdimm, label: convert label tracking to a linked list libnvdimm, namespace: refactor uuid_show() into a namespace_to_uuid() helper libnvdimm, namespace: unify blk and pmem label scanning tools/testing/nvdimm: support for sub-dividing a pmem region libnvdimm, namespace: allow multiple pmem-namespaces per region at scan time libnvdimm, namespace: sort namespaces by dpa at init
libnvdimm, region: update nd_region_available_dpa() for multi-pmem support libnvdimm, namespace: expand pmem device naming scheme for multi-pmem libnvdimm, namespace: update label implementation for multi-pmem libnvdimm, namespace: enable allocation of multiple pmem namespaces libnvdimm, namespace: filter out of range labels in scan_labels() libnvdimm, namespace: lift single pmem limit in scan_labels() libnvdimm, namespace: allow creation of multiple pmem-namespaces per region
dax: convert devm_create_dax_dev to PTR_ERR
Merge branch 'for-4.9/libnvdimm' into libnvdimm-for-next
Merge branch 'for-4.9/dax' into libnvdimm-for-next

Dave Jiang (2):
nvdimm: remove duplicate nd_mapping declaration
nvdimm: reduce duplicated wpq flushes

Geert Uytterhoeven (1):
nvdimm: Spelling s/unacknoweldged/unacknowledged/

Ross Zwisler (1):
/dev/dax: fix Kconfig dependency build breakage

Toshi Kani (1):
libnvdimm: Fix nvdimm_probe error on NVDIMM-N

Vishal Verma (4):
acpi, nfit: check for the correct event code in notifications
nfit: don't start a full scrub by default for an MCE
pmem: reduce kmap_atomic sections to the memcpys only
libnvdimm: clear the internal poison_list when clearing badblocks

 drivers/acpi/nfit/core.c              | 210 +-+-+-+-+-+-+---
 drivers/acpi/nfit/mce.c               |  24 +--
 drivers/acpi/nfit/nfit.h              |  17 +-
 drivers/dax/Kconfig                   |   5 +-
 drivers/dax/dax.c                     | 577 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-----------
 drivers/dax/dax.h                     |   5 +--
 drivers/dax/pmem.c                    |   7 +--
 drivers/nvdimm/Kconfig                |   2 +--
 drivers/nvdimm/bus.c                  |   2 +-
 drivers/nvdimm/core.c                 |  73 +-+-+--
 drivers/nvdimm/dimm.c                 |  11 +-
 drivers/nvdimm/dimm_devs.c            | 226 +-+-+-+-+-+-+----
 drivers/nvdimm/label.c                | 192 +-+-+-+-+-----
 drivers/nvdimm/namespace_devs.c       | 792 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+------------
 drivers/nvdimm/nd-core.h              |  24 +--
 drivers/nvdimm/nd.h                   |  29 +--
 drivers/nvdimm/pmem.c                 |  28 +--
 drivers/nvdimm/region_devs.c          |  75 +-+-+--
 fs/char_dev.c                         |   1 +-
 include/linux/libnvdimm.h             |  28 +--
 include/linux/nd.h                    |   8 +--
 include/uapi/linux/magic.h            |   1 +-
 include/uapi/linux/ndctl.h            |  30 +--
 tools/testing/nvdimm/Kbuild           |   1 +-
 tools/testing/nvdimm/test/iomap.c     | 151 +-+-+-+-+---
 tools/testing/nvdimm/test/nfit.c      | 160 +-+-+-+-+-+--
 tools/testing/nvdimm/test/nfit_test.h |  12 +--
 27 files changed, 1940 insertions(+-), 751 deletions(-)

_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm