[<prev] [next>] [day] [month] [year] [list]
Message-ID: <1476167860.3887.8.camel@intel.com>
Date: Tue, 11 Oct 2016 06:37:45 +0000
From: "Williams, Dan J" <dan.j.williams@...el.com>
To: "torvalds@...ux-foundation.org" <torvalds@...ux-foundation.org>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-nvdimm@...ts.01.org" <linux-nvdimm@...ts.01.org>,
"linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>
Subject: [GIT PULL] libnvdimm for 4.9
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(-)
Powered by blists - more mailing lists