linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 00/17] re-enable DAX PMD support
@ 2016-10-12 22:50 Ross Zwisler
  2016-10-12 22:50 ` [PATCH v6 05/17] dax: make 'wait_table' global variable static Ross Zwisler
                   ` (2 more replies)
  0 siblings, 3 replies; 27+ messages in thread
From: Ross Zwisler @ 2016-10-12 22:50 UTC (permalink / raw)
  To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
  Cc: Theodore Ts'o, Matthew Wilcox, Dave Chinner,
	linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw, Christoph Hellwig,
	linux-xfs-u79uwXL29TY76Z2rM5mHXA, linux-mm-Bw31MaZKKs3YtjvyW6yDsg,
	Andreas Dilger, Alexander Viro,
	linux-fsdevel-u79uwXL29TY76Z2rM5mHXA, Jan Kara,
	linux-ext4-u79uwXL29TY76Z2rM5mHXA, Andrew Morton

DAX PMDs have been disabled since Jan Kara introduced DAX radix tree based
locking.  This series allows DAX PMDs to participate in the DAX radix tree
based locking scheme so that they can be re-enabled.

For now I'm still using the same baseline for this series as I did with v5.
I'll update the baseline once v4.9-rc1 is released, dropping whatever patches
have already been merged.

Changes since v5:
 - Reworked the way that DAX radix tree flags were handled. The old
   handling was correct but a bit hard for the reader to parse.  Hopefully
   this new way is more readable & maintainable.  (Jan & Christoph)
 - Made the definition of dax_radix_order() conditional based on
   CONFIG_FS_DAX_PMD.  This was necessary because PMD_SHIFT isn't defined
   on all systems. (kbuild)
 - Dropped the incorrect patch "ext2: return -EIO on ext2_iomap_end()
   failure".  (Jan)
 - A few error path fixes in grab_mapping_entry().  (Jan)
 - A few more comments in grab_mapping_entry(),
   dax_wake_mapping_entry_waiter() and dax_insert_mapping_entry(). (Jan)
 - Removed the 'inline' keyword from dax_iomap_sector().  (Dan)
 - Cleaned up the path through ops->iomap_end() in both dax_iomap_fault()
   and dax_iomap_pmd_fault().  We now pass 0 for the 'written' argument on
   error conditions.  (Jan & Christoph)
 - Improved the naming of 'size' to 'max_pgoff' in dax_iomap_pmd_fault().
   (Jan)

Thank you to Jan and Christoph for their review feedback.

Here is a tree containing my changes:
https://git.kernel.org/cgit/linux/kernel/git/zwisler/linux.git/log/?h=dax_pmd_v6

This tree has passed xfstests for ext2, ext4 and XFS both with and without
DAX, and has passed targeted testing where I inserted, removed and flushed
DAX PTEs and PMDs in every combination I could think of.

Ross Zwisler (17):
  ext4: allow DAX writeback for hole punch
  ext4: tell DAX the size of allocation holes
  dax: remove buffer_size_valid()
  ext2: remove support for DAX PMD faults
  dax: make 'wait_table' global variable static
  dax: remove the last BUG_ON() from fs/dax.c
  dax: consistent variable naming for DAX entries
  dax: coordinate locking for offsets in PMD range
  dax: remove dax_pmd_fault()
  dax: correct dax iomap code namespace
  dax: add dax_iomap_sector() helper function
  dax: dax_iomap_fault() needs to call iomap_end()
  dax: move RADIX_DAX_* defines to dax.h
  dax: move put_(un)locked_mapping_entry() in dax.c
  dax: add struct iomap based DAX PMD support
  xfs: use struct iomap based DAX PMD fault path
  dax: remove "depends on BROKEN" from FS_DAX_PMD

 fs/Kconfig          |   1 -
 fs/dax.c            | 825 +++++++++++++++++++++++++++++-----------------------
 fs/ext2/file.c      |  35 +--
 fs/ext4/inode.c     |   7 +-
 fs/xfs/xfs_aops.c   |  26 +-
 fs/xfs/xfs_aops.h   |   3 -
 fs/xfs/xfs_file.c   |  10 +-
 include/linux/dax.h |  58 +++-
 mm/filemap.c        |   5 +-
 9 files changed, 538 insertions(+), 432 deletions(-)

-- 
2.9.0

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2016-10-17 14:55 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-12 22:50 [PATCH v6 00/17] re-enable DAX PMD support Ross Zwisler
2016-10-12 22:50 ` [PATCH v6 05/17] dax: make 'wait_table' global variable static Ross Zwisler
2016-10-12 22:50 ` [PATCH v6 06/17] dax: remove the last BUG_ON() from fs/dax.c Ross Zwisler
     [not found] ` <20161012225022.15507-1-ross.zwisler-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-10-12 22:50   ` [PATCH v6 01/17] ext4: allow DAX writeback for hole punch Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 02/17] ext4: tell DAX the size of allocation holes Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 03/17] dax: remove buffer_size_valid() Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 04/17] ext2: remove support for DAX PMD faults Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 07/17] dax: consistent variable naming for DAX entries Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 08/17] dax: coordinate locking for offsets in PMD range Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 09/17] dax: remove dax_pmd_fault() Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 10/17] dax: correct dax iomap code namespace Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 11/17] dax: add dax_iomap_sector() helper function Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 12/17] dax: dax_iomap_fault() needs to call iomap_end() Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 13/17] dax: move RADIX_DAX_* defines to dax.h Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 14/17] dax: move put_(un)locked_mapping_entry() in dax.c Ross Zwisler
2016-10-13 15:11     ` Jan Kara
2016-10-12 22:50   ` [PATCH v6 15/17] dax: add struct iomap based DAX PMD support Ross Zwisler
     [not found]     ` <20161012225022.15507-16-ross.zwisler-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-10-13 15:42       ` Jan Kara
2016-10-13 19:23         ` [PATCH v7 " Ross Zwisler
2016-10-17  6:06           ` Aneesh Kumar K.V
2016-10-17 14:55             ` Ross Zwisler
2016-10-13 19:25         ` [PATCH v6 " Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 16/17] xfs: use struct iomap based DAX PMD fault path Ross Zwisler
2016-10-12 22:50   ` [PATCH v6 17/17] dax: remove "depends on BROKEN" from FS_DAX_PMD Ross Zwisler
     [not found]     ` <20161012225022.15507-18-ross.zwisler-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-10-13 15:42       ` Jan Kara
2016-10-17  5:57       ` Aneesh Kumar K.V
     [not found]         ` <87eg3ftt4r.fsf-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-10-17  9:09           ` Jan Kara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).