summaryrefslogtreecommitdiffstats
path: root/fs/ubifs
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2011-07-18 03:40:16 +0000
committerAlex Elder <aelder@sgi.com>2011-07-20 18:37:20 -0500
commit1d8c95a363bf8cd4d4182dd19c01693b635311c2 (patch)
tree839d26eb6a1f6814c687e2c6855feb377b74c0f9 /fs/ubifs
parentad1a2c878ca70829874b4fcc83223cccb4e26dab (diff)
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>
Diffstat (limited to 'fs/ubifs')
0 files changed, 0 insertions, 0 deletions