aboutsummaryrefslogtreecommitdiffstats
path: root/REPORTING-BUGS
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2011-10-18 10:23:16 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-10-25 07:10:16 +0200
commitf5d5ee3686ab928549370e4e584a2c32ef708a37 (patch)
tree1ae2d2d4b69f4ebd8d5b52189c3d944c5bf139e4 /REPORTING-BUGS
parenteedc6389bb43769e82f2779dabd45865d2b892e4 (diff)
downloadkernel_samsung_aries-f5d5ee3686ab928549370e4e584a2c32ef708a37.zip
kernel_samsung_aries-f5d5ee3686ab928549370e4e584a2c32ef708a37.tar.gz
kernel_samsung_aries-f5d5ee3686ab928549370e4e584a2c32ef708a37.tar.bz2
xfs: use a cursor for bulk AIL insertion
commit 1d8c95a363bf8cd4d4182dd19c01693b635311c2 upstream xfs: use a cursor for bulk AIL insertion Delayed logging can insert tens of thousands of log items into the AIL at the same LSN. When the committing of log commit records occur, we can get insertions occurring at an LSN that is not at the end of the AIL. If there are thousands of items in the AIL on the tail LSN, each insertion has to walk the AIL to find the correct place to insert the new item into the AIL. This can consume large amounts of CPU time and block other operations from occurring while the traversals are in progress. To avoid this repeated walk, use a AIL cursor to record where we should be inserting the new items into the AIL without having to repeat the walk. The cursor infrastructure already provides this functionality for push walks, so is a simple extension of existing code. While this will not avoid the initial walk, it will avoid repeating it tens of thousands of times during a single checkpoint commit. This version includes logic improvements from Christoph Hellwig. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Alex Elder <aelder@sgi.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'REPORTING-BUGS')
0 files changed, 0 insertions, 0 deletions