public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/45] write back all metadata via the AIL (and remove xfsbufd)
@ 2011-10-28  9:54 Christoph Hellwig
  2011-10-28  9:54 ` [PATCH 01/45] xfs: constify xfs_item_ops Christoph Hellwig
                   ` (41 more replies)
  0 siblings, 42 replies; 44+ messages in thread
From: Christoph Hellwig @ 2011-10-28  9:54 UTC (permalink / raw)
  To: xfs

Sorry for the patchbomb, but I wanted to flush out my current working
series now that is passing all the testing I've thrown at, including
on a high IOPS flash device that I won't have access to for much longer.

The series really is multiple ones, but we need all of it to make it
to the end goal.


1) inode shrinkage.  This has been posted and partially revieved before,
   and isn't absolutely nessecary but will make life easier later on.

2) log all inode updates and stop using the VFS dirty tracking for metadata.
   This has also been posted before, and it did get some updates.  It still
   lacks support for optimizing fdatasync, and it still hasn't been updated
   to the suggestion by Dave to allocate log space from ->writepage.  I have
   tried to implement the latter but run into various issues, more on that
   later.

3) the various quota updates, which mostly have been posted before.  This
   version also has a few new patches that add a proper shrinker callout
   to the quota code.  While the code looks fairly good the testing doesn't
   really stress much of this code at all.  I will have to write a new
   testcase (or a few) that actually have a lot of dquots in memory,
   and create memory pressure before I feel confident enought about these
   changes.

4) stop writing back inodes from async reclaim.  This is just a single patch,
   but a huge change in behaviour.

5) implement a way to completely empty the AIL and use it during freeze, umount
   and remount r/o.  This remove a whole lot of nasty heuristics for flushing
   back all metadata to its regular, non-log place by using a single piece
   of well understood code.

6) remove xfsbufd and queue up buffers on on-stack list, with the only
   one during normal operation beeing the one in xfsaild.  Besides greatly
   reducing the code this massively reduces calls to the buffercache that
   reduce scalability in highly parallel, metada-intensive loads.

7) a few cleanups the reduce and centralize log force trying to unpin buffers.


Comments on all these are highly appreciated, and I will resubmit patches in
here in smaller chunks as soon as were are confident about one or more of
the sub-series. 

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

end of thread, other threads:[~2011-11-05  8:11 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-28  9:54 [PATCH 00/45] write back all metadata via the AIL (and remove xfsbufd) Christoph Hellwig
2011-10-28  9:54 ` [PATCH 01/45] xfs: constify xfs_item_ops Christoph Hellwig
2011-10-28  9:54 ` [PATCH 02/45] xfs: make i_flags an unsigned long Christoph Hellwig
2011-10-28  9:54 ` [PATCH 03/45] xfs: replace i_flock with a sleeping bitlock Christoph Hellwig
2011-10-28  9:54 ` [PATCH 04/45] xfs: replace i_pin_wait with a bit waitqueue Christoph Hellwig
2011-10-28  9:54 ` [PATCH 05/45] xfs: remove the unused dm_attrs structure Christoph Hellwig
2011-10-28  9:54 ` [PATCH 06/45] xfs: remove xfs_itruncate_data Christoph Hellwig
2011-10-28  9:54 ` [PATCH 07/45] xfs: cleanup xfs_iomap_eof_align_last_fsb Christoph Hellwig
2011-10-28  9:54 ` [PATCH 08/45] xfs: remove the i_size field in struct xfs_inode Christoph Hellwig
2011-10-28  9:54 ` [PATCH 09/45] xfs: remove the i_new_size " Christoph Hellwig
2011-10-28  9:54 ` [PATCH 10/45] fix: force shutdown handling in xfs_end_io Christoph Hellwig
2011-11-05  8:11   ` Christoph Hellwig
2011-10-28  9:54 ` [PATCH 11/45] xfs: use per-filesystem I/O completion workqueues Christoph Hellwig
2011-10-28  9:54 ` [PATCH 12/45] xfs: do not require an ioend for new EOF calculation Christoph Hellwig
2011-10-28  9:54 ` [PATCH 16/45] xfs: untange SYNC_WAIT and SYNC_TRYLOCK meanings for xfs_qm_dqflush Christoph Hellwig
2011-10-28  9:54 ` [PATCH 17/45] xfs: make sure to really flush all dquots in xfs_qm_quotacheck Christoph Hellwig
2011-10-28  9:54 ` [PATCH 18/45] xfs: remove xfs_qm_sync Christoph Hellwig
2011-10-28  9:54 ` [PATCH 19/45] xfs: remove the sync_mode argument to xfs_qm_dqflush_all Christoph Hellwig
2011-10-28  9:54 ` [PATCH 20/45] xfs: cleanup dquot locking helpers Christoph Hellwig
2011-10-28  9:54 ` [PATCH 21/45] xfs: cleanup xfs_qm_dqlookup Christoph Hellwig
2011-10-28  9:54 ` [PATCH 22/45] xfs: remove XFS_DQ_INACTIVE Christoph Hellwig
2011-10-28  9:54 ` [PATCH 23/45] xfs: implement lazy removal for the dquot freelist Christoph Hellwig
2011-10-28  9:54 ` [PATCH 24/45] xfs: flatten the dquot lock ordering Christoph Hellwig
2011-10-28  9:54 ` [PATCH 25/45] xfs: nest the qm_dqfrlist_lock insise the dquot qlock Christoph Hellwig
2011-10-28  9:54 ` [PATCH 26/45] xfs: simplify xfs_qm_dqattach_grouphint Christoph Hellwig
2011-10-28  9:54 ` [PATCH 27/45] xfs: add a xfs_dqhold helper Christoph Hellwig
2011-10-28  9:54 ` [PATCH 28/45] xfs: kill xfs_qm_dqinit_core Christoph Hellwig
2011-10-28  9:54 ` [PATCH 29/45] xfs: kill xfs_qm_idtodq Christoph Hellwig
2011-10-28  9:54 ` [PATCH 30/45] xfs: remove XFS_QMOPT_DQSUSER Christoph Hellwig
2011-10-28  9:54 ` [PATCH 31/45] xfs: simplify xfs_qm_detach_gdquots Christoph Hellwig
2011-10-28  9:54 ` [PATCH 32/45] xfs: use a normal shrinker for the dquot freelist Christoph Hellwig
2011-10-28  9:54 ` [PATCH 33/45] xfs: reclaim clean dquots first Christoph Hellwig
2011-10-28  9:54 ` [PATCH 34/45] xfs: do flush inodes during asynchronous inode reclaim Christoph Hellwig
2011-10-28  9:54 ` [PATCH 35/45] xfs: remove log item from AIL in xfs_qm_dqflush after a shutdown Christoph Hellwig
2011-10-28  9:54 ` [PATCH 36/45] xfs: remove log item from AIL in xfs_iflush " Christoph Hellwig
2011-10-28  9:55 ` [PATCH 37/45] xfs: implement freezing by emptying the AIL Christoph Hellwig
2011-10-28  9:55 ` [PATCH 38/45] xfs: explicitly empty the AIL on unmount Christoph Hellwig
2011-10-28  9:55 ` [PATCH 39/45] xfs: do not write the buffer from xfs_iflush Christoph Hellwig
2011-10-28  9:55 ` [PATCH 40/45] xfs: do not write the buffer from xfs_qm_dqflush Christoph Hellwig
2011-10-28  9:55 ` [PATCH 41/45] xfs: do not add buffers to the delwri queue until pushed Christoph Hellwig
2011-10-28  9:55 ` [PATCH 42/45] xfs: on-stack delayed write buffer lists Christoph Hellwig
2011-10-28  9:55 ` [PATCH 43/45] xfs: do not try to unpin the inode buffer in xfs_iflush Christoph Hellwig
2011-10-28  9:55 ` [PATCH 44/45] xfs: do not try to unpin the inode buffer in xfs_qm_dq_flush Christoph Hellwig
2011-10-28  9:55 ` [PATCH 45/45] xfs: force the log in xfs_buf_wait_unpin Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox