Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1209453

[PATCH v5 0/7] dax: I/O path enhancements

From Ross Zwisler <ross.zwisler@linux.intel.com>
Newsgroups linux.kernel
Subject [PATCH v5 0/7] dax: I/O path enhancements
Date 2015-08-18 22:00 +0200
Message-ID <pYVd7-7KG-5@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


The goal of this series is to enhance the DAX I/O path so that all operations
that store data (I/O writes, zeroing blocks, punching holes, etc.) properly
synchronize the stores to media using the PMEM API.  This ensures that the
data DAX is writing is durable on media before the operation completes.

Patches 1-4 are a few random cleanups.

Changes from v4:
 - rebased to libnvdimm-for-next branch:
https://git.kernel.org/cgit/linux/kernel/git/nvdimm/nvdimm.git/commit/?h=libnvdimm-for-next

The nvdimm repository doesn't have the DAX PMD changes that are in the -mm
tree.  I expect the merge will basically be these two hunks:

@@ -514,7 +528,7 @@ int __dax_pmd_fault(struct vm_area_struct *vma, unsigned long address,
        unsigned long pmd_addr = address & PMD_MASK;
        bool write = flags & FAULT_FLAG_WRITE;
        long length;
-       void *kaddr;
+       void __pmem *kaddr;
        pgoff_t size, pgoff;
        sector_t block, sector;
        unsigned long pfn;
@@ -608,7 +622,8 @@ int __dax_pmd_fault(struct vm_area_struct *vma, unsigned long address,
                if (buffer_unwritten(&bh) || buffer_new(&bh)) {
                        int i;
                        for (i = 0; i < PTRS_PER_PMD; i++)
-                               clear_page(kaddr + i * PAGE_SIZE);
+                               clear_pmem(kaddr + i * PAGE_SIZE, PAGE_SIZE);
+                       wmb_pmem();
                        count_vm_event(PGMAJFAULT);
                        mem_cgroup_count_vm_event(vma->vm_mm, PGMAJFAULT);
                        result |= VM_FAULT_MAJOR;

Ross Zwisler (7):
  brd: make rd_size static
  pmem, x86: move x86 PMEM API to new pmem.h header
  pmem: remove layer when calling arch_has_wmb_pmem()
  pmem, x86: clean up conditional pmem includes
  pmem: add copy_from_iter_pmem() and clear_pmem()
  dax: update I/O path to do proper PMEM flushing
  pmem, dax: have direct_access use __pmem annotation

 Documentation/filesystems/Locking |   3 +-
 MAINTAINERS                       |   1 +
 arch/powerpc/sysdev/axonram.c     |   7 +-
 arch/x86/include/asm/cacheflush.h |  71 -----------------
 arch/x86/include/asm/pmem.h       | 158 ++++++++++++++++++++++++++++++++++++++
 drivers/block/brd.c               |   6 +-
 drivers/nvdimm/pmem.c             |   4 +-
 drivers/s390/block/dcssblk.c      |  10 ++-
 fs/block_dev.c                    |   2 +-
 fs/dax.c                          |  63 +++++++++------
 include/linux/blkdev.h            |   8 +-
 include/linux/pmem.h              |  77 ++++++++++++++++---
 12 files changed, 285 insertions(+), 125 deletions(-)
 create mode 100644 arch/x86/include/asm/pmem.h

-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH v5 0/7] dax: I/O path enhancements Ross Zwisler <ross.zwisler@linux.intel.com> - 2015-08-18 22:00 +0200
  [PATCH v5 7/7] pmem, dax: have direct_access use __pmem annotation Ross Zwisler <ross.zwisler@linux.intel.com> - 2015-08-18 22:00 +0200
  [PATCH v5 2/7] pmem, x86: move x86 PMEM API to new pmem.h header Ross Zwisler <ross.zwisler@linux.intel.com> - 2015-08-18 22:00 +0200
  [PATCH v5 1/7] brd: make rd_size static Ross Zwisler <ross.zwisler@linux.intel.com> - 2015-08-18 22:00 +0200
  [PATCH v5 5/7] pmem: add copy_from_iter_pmem() and clear_pmem() Ross Zwisler <ross.zwisler@linux.intel.com> - 2015-08-18 22:00 +0200
    Re: [PATCH v5 5/7] pmem: add copy_from_iter_pmem() and clear_pmem() Christoph Hellwig <hch@lst.de> - 2015-08-19 10:20 +0200
  [PATCH v5 6/7] dax: update I/O path to do proper PMEM flushing Ross Zwisler <ross.zwisler@linux.intel.com> - 2015-08-18 22:00 +0200

csiph-web