From: Dave Chinner <david@fromorbit.com>
To: xfs@oss.sgi.com
Subject: [PATCH 0/8] xfs: AIL lock contention reduction V2
Date: Mon, 29 Nov 2010 12:12:24 +1100 [thread overview]
Message-ID: <1290993152-20999-1-git-send-email-david@fromorbit.com> (raw)
This series reduces AIL locking overhead by introducing bulk operations for
insert and delete. With delayed logging, we can be doing insert operations on
thousands of items at a time, so using a bulk operation to reduce AIL lock
traffic is a major win in terms of reducing contention on the lock.
Similarly, when we have inode buffer IO completion running on multiple CPUs at
once, the AIl lock contention from each individual AIL removal is significant.
By batching all the inodes on the buffer to be removed from the AIL in a single
bulk operation, contention on the AIL is reduced by an order of magnitude.
Finally, there is a modification to the xfsaild wakeup code to prevent too many
wakeups when the xfsaild is pausing waiting for some work to complete. This
prevents an excessive number of AIL scanning traversals by the xfsaild when
tail pushing is backing off and waiting for some IO to complete.
In combination, these modification reduce AIL lock contention sufficiently
to drop the AIL lock out of the "top 10" contended locks on 8-way fs_mark
and dbench workloads.
Version 2:
- split out stale inode AIL insertion bug fix
- split bulk AIL insertion into multiple patches
- EFI/EFD handling changes
- stale inode AIL insertion bug fix
- simplify code calling xfs_ail_delete
- bulk ail insertion modifications
- use atomic_inc_return for extent recording in xfs_trans_log_efi_extent()
- modified AIL sleep code to explicitly set task state as suggested by Christoph.
- split AIL bulk deletion into two patches
- buffer iodone callback modifications
- bulk AIL deletion and inode iodone callback mods.
- removed lip parameter from xfs_buf_do_callbacks() as the loop fetches
it from the buffer anyway.
- fixed unused variable warning in xfs_buf_do_callbacks().
- added two new patches to reduce code duplication
- use AIL bulk insertion function to implement single updates
- use AIL bulk delete function to implement single deletes
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next reply other threads:[~2010-11-29 1:11 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-29 1:12 Dave Chinner [this message]
2010-11-29 1:12 ` [PATCH 1/8] xfs: Pull EFI/EFD handling out from under the AIL lock Dave Chinner
2010-11-30 20:17 ` Christoph Hellwig
2010-12-02 1:28 ` Dave Chinner
2010-12-02 11:38 ` Christoph Hellwig
2010-12-03 5:24 ` Dave Chinner
2010-11-29 1:12 ` [PATCH 2/8] xfs: clean up xfs_ail_delete() Dave Chinner
2010-11-30 20:19 ` Christoph Hellwig
2010-11-29 1:12 ` [PATCH 3/8] xfs: bulk AIL insertion during transaction commit Dave Chinner
2010-11-30 22:40 ` Christoph Hellwig
2010-12-02 1:32 ` Dave Chinner
2010-11-29 1:12 ` [PATCH 4/8] xfs: reduce the number of AIL push wakeups Dave Chinner
2010-11-30 20:19 ` Christoph Hellwig
2010-11-29 1:12 ` [PATCH 5/8] xfs: consume iodone callback items on buffers as they are processed Dave Chinner
2010-11-30 20:24 ` Christoph Hellwig
2010-11-29 1:12 ` [PATCH 6/8] xfs: remove all the inodes on a buffer from the AIL in bulk Dave Chinner
2010-12-06 14:33 ` Christoph Hellwig
2010-12-07 3:44 ` Dave Chinner
2010-12-07 7:39 ` Christoph Hellwig
2010-11-29 1:12 ` [PATCH 8/8] xfs: use AIL bulk delete function to implement single delete Dave Chinner
2010-12-06 14:37 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1290993152-20999-1-git-send-email-david@fromorbit.com \
--to=david@fromorbit.com \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox