All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 00/14] Per-sb tracking of dirty inodes
@ 2014-07-31 22:00 Jan Kara
  2014-07-31 22:00 ` [PATCH 01/14] writeback: Get rid of superblock pinning Jan Kara
                   ` (16 more replies)
  0 siblings, 17 replies; 25+ messages in thread
From: Jan Kara @ 2014-07-31 22:00 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: OGAWA Hirofumi, Wu Fengguang, Jan Kara

  Hello,

  here is my attempt to implement per superblock tracking of dirty inodes.
I have two motivations for this:
  1) I've tried to get rid of overwriting of inode's dirty time stamp during
     writeback and filtering of dirty inodes by superblock makes this
     significantly harder. For similar reasons also improving scalability
     of inode dirty tracking is more complicated than it has to be.
  2) Filesystems like Tux3 (but to some extent also XFS) would like to
     influence order in which inodes are written back. Currently this isn't
     possible. Tracking dirty inodes per superblock makes it easy to later
     implement filesystem callback for writing back inodes and also possibly
     allow filesystems to implement their own dirty tracking if they desire.

  The patches pass xfstests run and also some sync livelock avoidance tests
I have with 4 filesystems on 2 disks so they should be reasonably sound.
Before I go and base more work on this I'd like to hear some feedback about
whether people find this sane and workable.

After this patch set it is trivial to provide a per-sb callback for writeback
(at level of writeback_inodes()). It is also fairly easy to allow filesystem to
completely override dirty tracking (only needs some restructuring of
mark_inode_dirty()). I can write these as a proof-of-concept patches for Tux3
guys once the general approach in this patch set is acked. Or if there are
some in-tree users (XFS?, btrfs?) I can include them in the patch set.

Any comments welcome!

								Honza 

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

end of thread, other threads:[~2014-08-10 23:16 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-31 22:00 [RFC PATCH 00/14] Per-sb tracking of dirty inodes Jan Kara
2014-07-31 22:00 ` [PATCH 01/14] writeback: Get rid of superblock pinning Jan Kara
2014-07-31 22:00 ` [PATCH 02/14] writeback: Remove writeback_inodes_wb() Jan Kara
2014-07-31 22:00 ` [PATCH 03/14] writeback: Remove useless argument of writeback_single_inode() Jan Kara
2014-07-31 22:00 ` [PATCH 04/14] writeback: Don't put inodes which cannot be written to b_more_io Jan Kara
2014-07-31 22:00 ` [PATCH 05/14] writeback: Move dwork and last_old_flush into backing_dev_info Jan Kara
2014-07-31 22:00 ` [PATCH 06/14] writeback: Switch locking of bandwidth fields to wb_lock Jan Kara
2014-07-31 22:00 ` [PATCH 07/14] writeback: Provide a function to get bdi from bdi_writeback Jan Kara
2014-07-31 22:00 ` [PATCH 08/14] writeback: Schedule future writeback if bdi (not wb) has dirty inodes Jan Kara
2014-07-31 22:00 ` [PATCH 09/14] writeback: Switch some function arguments from bdi_writeback to bdi Jan Kara
2014-07-31 22:00 ` [PATCH 10/14] writeback: Move rechecking of work list into bdi_process_work_items() Jan Kara
2014-07-31 22:00 ` [PATCH 11/14] writeback: Shorten list_lock hold times in bdi_writeback() Jan Kara
2014-07-31 22:00 ` [PATCH 12/14] writeback: Move refill of b_io list into writeback_inodes() Jan Kara
2014-07-31 22:00 ` [PATCH 13/14] writeback: Comment update Jan Kara
2014-07-31 22:00 ` [PATCH 14/14] writeback: Per-sb dirty tracking Jan Kara
2014-08-01  5:14   ` Daniel Phillips
2014-08-05 23:44   ` Dave Chinner
2014-08-06  8:46     ` Jan Kara
2014-08-06 21:13       ` Dave Chinner
2014-08-08 10:46         ` Jan Kara
2014-08-10 23:16           ` Dave Chinner
2014-08-01  5:32 ` [RFC PATCH 00/14] Per-sb tracking of dirty inodes Daniel Phillips
2014-08-05  5:22 ` Dave Chinner
2014-08-05 10:31   ` Jan Kara
2014-08-05  8:20 ` Dave Chinner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.