Messages in this thread | | | From | "Williams, Dan J" <> | Subject | [GIT PULL] libnvdimm for 4.8 | Date | Thu, 28 Jul 2016 05:33:00 +0000 |
| |
Hi Linus, please pull from:
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-for-4.8
...to receive the libnvdimm update for 4.8.
This has been in -next with the following reported conflicts:
1/ The __pmem address space has been removed. New usages of __pmem came in through the DM tree this cycle.
2/ A minor conflict in the pmem driver with the device_add_disk() changes that came in through the block layer.
3/ The removal of pcommit collided with new enabling in KVM. At the time of writing you have not yet merged the KVM tree.
A test resolution for 1 and 2 is available here:
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-for-4.8-merge
Stephen's resolution of the KVM conflict is available here:
https://lkml.org/lkml/2016/7/25/11
The pcommit removal in arch/x86/ has an ack from Ingo.
---
The following changes since commit a72255983f12f31f0c8d8275fb1a781546cfacb7:
nfit: make DIMM DSMs optional (2016-07-19 12:32:39 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-for-4.8
for you to fetch changes up to 0606263f24f3d64960de742c55894190b5df903b:
Merge branch 'for-4.8/libnvdimm' into libnvdimm-for-next (2016-07-24 08:05:44 -0700)
---------------------------------------------------------------- libnvdimm for 4.8
1/ Replace pcommit with ADR / directed-flushing: The pcommit instruction, which has not shipped on any product, is deprecated. Instead, the requirement is that platforms implement either ADR, or provide one or more flush addresses per nvdimm. ADR (Asynchronous DRAM Refresh) flushes data in posted write buffers to the memory controller on a power-fail event. Flush addresses are defined in ACPI 6.x as an NVDIMM Firmware Interface Table (NFIT) sub-structure: "Flush Hint Address Structure". A flush hint is an mmio address that when written and fenced assures that all previous posted writes targeting a given dimm have been flushed to media.
2/ On-demand ARS (address range scrub): Linux uses the results of the ACPI ARS commands to track bad blocks in pmem devices. When latent errors are detected we re-scrub the media to refresh the bad block list, userspace can also request a re-scrub at any time.
3/ Support for the Microsoft DSM (device specific method) command format.
4/ Support for EDK2/OVMF virtual disk device memory ranges.
5/ Various fixes and cleanups across the subsystem.
---------------------------------------------------------------- Dan Williams (32): libnvdimm: use devm_add_action_or_reset() libnvdimm: IS_ERR() usage cleanup tools/testing/nvdimm: add pfn device dependency libnvdimm, pmem: allow nfit_test to override pmem_direct_access() tools/testing/nvdimm: replace CONFIG_DMA_CMA dependency with vmalloc() tools/testing/nvdimm: remove __wrap_devm_memremap_pages placeholder nfit: always associate flush hints nfit: don't override return value of nfit_mem_init libnvdimm: introduce devm_nvdimm_memremap(), convert nfit_spa_map() users libnvdimm, nfit: remove nfit_spa_map() infrastructure libnvdimm, nfit: move flush hint mapping to region-device driver-data tools/testing/nvdimm: simulate multiple flush hints per-dimm libnvdimm: keep region data alive over namespace removal libnvdimm: introduce nvdimm_flush() and nvdimm_has_flush() libnvdimm: cycle flush hints libnvdimm, pmem: use REQ_FUA, REQ_FLUSH for nvdimm_flush() libnvdimm, pmem: flush posted-write queues on shutdown fs/dax: remove wmb_pmem() libnvdimm, pmem: use nvdimm_flush() for namespace I/O writes pmem: kill wmb_pmem() pmem: kill __pmem address space tools/testing/nvdimm: add virtual ramdisk range tools/testing/nvdimm: add manufacturing_{date|location} dimm properties nfit: fix _FIT evaluation memory leak + use after free nfit: cleanup acpi_nfit_init calling convention libnvdimm: move ->module to struct nvdimm_bus_descriptor nfit, tools/testing/nvdimm/: unify shutdown paths Revert "KVM: x86: add pcommit support" x86/insn: remove pcommit libnvdimm: register nvdimm_bus devices with an nd_bus driver nfit: move to nfit/ sub-directory Merge branch 'for-4.8/libnvdimm' into libnvdimm-for-next
Johannes Thumshirn (1): libnvdimm: initialize struct blk_integrity with 0
Lee, Chun-Yi (1): acpi, nfit: treat virtual ramdisk SPA as pmem region
Markus Elfring (1): libnvdimm-btt: Delete an unnecessary check before the function call "__nd_device_register"
Sajjan, Vikas C (2): nfit: use devm_add_action_or_reset() dax: use devm_add_action_or_reset()
Vishal Verma (4): libnvdimm, btt: update the usage section in Documentation pmem: clarify a debug print in pmem_clear_poison nfit, libnvdimm: allow an ARS scrub to be triggered on demand nfit: do an ARS scrub on hitting a latent media error
stuart hayes (1): nfit: add Microsoft NVDIMM DSM command set to white list
Documentation/filesystems/Locking | 2 +- Documentation/nvdimm/btt.txt | 28 +- arch/powerpc/sysdev/axonram.c | 4 +- arch/x86/include/asm/cpufeatures.h | 1 - arch/x86/include/asm/pmem.h | 77 +-- arch/x86/include/asm/special_insns.h | 46 -- arch/x86/include/asm/vmx.h | 1 - arch/x86/include/uapi/asm/vmx.h | 4 +- arch/x86/kvm/cpuid.c | 2 +- arch/x86/kvm/cpuid.h | 8 - arch/x86/kvm/vmx.c | 32 +- arch/x86/lib/x86-opcode-map.txt | 2 +- drivers/acpi/Kconfig | 27 +- drivers/acpi/Makefile | 2 +- drivers/acpi/nfit/Kconfig | 26 + drivers/acpi/nfit/Makefile | 3 + drivers/acpi/{nfit.c => nfit/core.c} | 647 ++++++++++++--------- drivers/acpi/nfit/mce.c | 89 +++ drivers/acpi/{ => nfit}/nfit.h | 60 +- drivers/block/brd.c | 4 +- drivers/dax/dax.c | 6 +- drivers/dax/pmem.c | 14 +- drivers/nvdimm/Kconfig | 2 +- drivers/nvdimm/blk.c | 11 +- drivers/nvdimm/btt_devs.c | 3 +- drivers/nvdimm/bus.c | 212 ++++++- drivers/nvdimm/claim.c | 7 +- drivers/nvdimm/core.c | 253 ++++---- drivers/nvdimm/dimm_devs.c | 5 +- drivers/nvdimm/e820.c | 1 + drivers/nvdimm/nd-core.h | 5 +- drivers/nvdimm/nd.h | 10 +- drivers/nvdimm/pmem.c | 85 +-- drivers/nvdimm/pmem.h | 24 + drivers/nvdimm/region.c | 19 +- drivers/nvdimm/region_devs.c | 154 ++++- drivers/s390/block/dcssblk.c | 6 +- fs/dax.c | 13 +- include/linux/blkdev.h | 6 +- include/linux/compiler.h | 2 - include/linux/libnvdimm.h | 24 +- include/linux/nd.h | 3 +- include/linux/pfn_t.h | 5 +- include/linux/pmem.h | 117 +--- include/uapi/linux/ndctl.h | 1 + kernel/memremap.c | 6 - scripts/checkpatch.pl | 1 - tools/objtool/arch/x86/insn/x86-opcode-map.txt | 2 +- tools/perf/arch/x86/tests/insn-x86-dat-32.c | 2 - tools/perf/arch/x86/tests/insn-x86-dat-64.c | 2 - tools/perf/arch/x86/tests/insn-x86-dat-src.c | 4 - .../perf/util/intel-pt-decoder/x86-opcode-map.txt | 2 +- tools/testing/nvdimm/Kbuild | 10 +- tools/testing/nvdimm/config_check.c | 1 + tools/testing/nvdimm/pmem-dax.c | 54 ++ tools/testing/nvdimm/test/Kbuild | 2 +- tools/testing/nvdimm/test/iomap.c | 38 +- tools/testing/nvdimm/test/nfit.c | 199 +++---- tools/testing/nvdimm/test/nfit_test.h | 2 + 59 files changed, 1369 insertions(+), 1009 deletions(-) create mode 100644 drivers/acpi/nfit/Kconfig create mode 100644 drivers/acpi/nfit/Makefile rename drivers/acpi/{nfit.c => nfit/core.c} (87%) create mode 100644 drivers/acpi/nfit/mce.c rename drivers/acpi/{ => nfit}/nfit.h (82%) create mode 100644 drivers/nvdimm/pmem.h create mode 100644 tools/testing/nvdimm/pmem-dax.c
| |