[PATCH v4 00/14] block, dax updates for 4.4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Changes since v3 [1]:

1/ Drop the REQ_FLUSH support patches, more testing of alternatives is
   needed and it was posted too close to the merge window opening.

2/ Split out the s/PMD_SIZE/HPAGE_SIZE/ rename to its own patch.

3/ Fix build breakage on platforms that define PAGE_MASK as an int

4/ Rework the opt-in control for raw block DAX to honor the S_DAX for
   dax_do_io() (Dave)

5/ Drop usage of pfn_t in "libnvdimm, pmem: fix size trim in
   pmem_direct_access()" (Ross)

6/ Make it explicit that bdev_direct_access() never returns a mapping
   length less than PAGE_SIZE. (Ross)

[1]: https://lists.01.org/pipermail/linux-nvdimm/2015-November/002660.html

---

There were several topics developed during this cycle, some are ready
and some are not.  The items needing more review and testing are the
pmem+dax updates with mm, ext4, and xfs dependencies.  Topics like dax
get_user_pages, fsync/msync support, and replacing dax_clear_blocks with
blkdev_issue_zeroout.

Instead, this more conservative set represents the fs and mm independent
updates to dax and pmem:

1/ Enable dax mappings for raw block devices

2/ Use blk_queue_{enter|exit} and the availability of 'struct page' to
   fix lifetime issues and races with unloading the pmem driver.

These depend on the latest 'libnvdimm-for-next' branch from nvdimm.git
and the 'for-4.4/integrity' branch from Jens' tree (already merged for
4.4).  All have been out for review prior to the merge window opening.
I am not enthusiastic about sending patch revisions during the merge
window, but it seems to be incremental fixlets on top of patches that
had already received some review and approval.  If there is any
remaining concern with this set I'll simply fall back to the current
state of libnvdimm-for-next (plus hotplug and coredump support) for this
cycle.

Please holler if you see any problems, or if you would like more time
(i.e. wait for 4.5) to review.

---

Dan Williams (14):
      pmem, dax: clean up clear_pmem()
      dax: increase granularity of dax_clear_blocks() operations
      dax: use HPAGE_SIZE instead of PMD_SIZE
      block, dax: fix lifetime of in-kernel dax mappings with dax_map_atomic()
      libnvdimm, pmem: move request_queue allocation earlier in probe
      libnvdimm, pmem: fix size trim in pmem_direct_access()
      um: kill pfn_t
      kvm: rename pfn_t to kvm_pfn_t
      mm, dax, pmem: introduce pfn_t
      block: notify queue death confirmation
      dax, pmem: introduce zone_device_revoke() and devm_memunmap_pages()
      block: introduce bdev_file_inode()
      block: enable dax for raw block devices
      block, dax: opt-in control for raw block dax support


 arch/arm/include/asm/kvm_mmu.h        |    5 -
 arch/arm/kvm/mmu.c                    |   10 +
 arch/arm64/include/asm/kvm_mmu.h      |    3 
 arch/mips/include/asm/kvm_host.h      |    6 -
 arch/mips/kvm/emulate.c               |    2 
 arch/mips/kvm/tlb.c                   |   14 +-
 arch/powerpc/include/asm/kvm_book3s.h |    4 -
 arch/powerpc/include/asm/kvm_ppc.h    |    2 
 arch/powerpc/kvm/book3s.c             |    6 -
 arch/powerpc/kvm/book3s_32_mmu_host.c |    2 
 arch/powerpc/kvm/book3s_64_mmu_host.c |    2 
 arch/powerpc/kvm/e500.h               |    2 
 arch/powerpc/kvm/e500_mmu_host.c      |    8 +
 arch/powerpc/kvm/trace_pr.h           |    2 
 arch/powerpc/sysdev/axonram.c         |    8 -
 arch/um/include/asm/page.h            |    6 -
 arch/um/include/asm/pgtable-3level.h  |    4 -
 arch/um/include/asm/pgtable.h         |    2 
 arch/x86/include/asm/pmem.h           |    7 -
 arch/x86/kvm/iommu.c                  |   11 +-
 arch/x86/kvm/mmu.c                    |   37 +++--
 arch/x86/kvm/mmu_audit.c              |    2 
 arch/x86/kvm/paging_tmpl.h            |    6 -
 arch/x86/kvm/vmx.c                    |    2 
 arch/x86/kvm/x86.c                    |    2 
 block/Kconfig                         |   15 ++
 block/blk-core.c                      |   12 +-
 block/blk-mq.c                        |   19 ++-
 block/blk.h                           |    2 
 block/ioctl.c                         |   60 ++++++++
 drivers/block/brd.c                   |    4 -
 drivers/nvdimm/pmem.c                 |  108 ++++++++++-----
 drivers/s390/block/dcssblk.c          |   10 +
 fs/block_dev.c                        |  129 ++++++++++++++++--
 fs/dax.c                              |  233 ++++++++++++++++++++++-----------
 include/linux/blkdev.h                |   10 +
 include/linux/fs.h                    |   11 ++
 include/linux/io.h                    |   17 --
 include/linux/kvm_host.h              |   37 +++--
 include/linux/kvm_types.h             |    2 
 include/linux/mm.h                    |   91 +++++++++++++
 include/linux/pfn.h                   |    9 +
 include/uapi/linux/fs.h               |    2 
 kernel/memremap.c                     |   98 +++++++++++++-
 virt/kvm/kvm_main.c                   |   47 +++----
 45 files changed, 774 insertions(+), 297 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux