xfs: improve metadata I/O merging in the elevator
Change all async metadata buffers to use [READ|WRITE]_META I/O types so that the I/O doesn't get issued immediately. This allows merging of adjacent metadata requests but still prioritises them over bulk data. This shows a 10-15% improvement in sequential create speed of small files. Don't include the log buffers in this classification - leave them as sync types so they are issued immediately. Signed-off-by: Dave Chinner <dgc@sgi.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Alex Elder <aelder@sgi.com>
This commit is contained in:
parent
b44b112627
commit
2ee1abad73
4 changed files with 9 additions and 1 deletions
|
@ -1441,6 +1441,7 @@ xlog_sync(xlog_t *log,
|
|||
XFS_BUF_ZEROFLAGS(bp);
|
||||
XFS_BUF_BUSY(bp);
|
||||
XFS_BUF_ASYNC(bp);
|
||||
bp->b_flags |= XBF_LOG_BUFFER;
|
||||
/*
|
||||
* Do an ordered write for the log block.
|
||||
* Its unnecessary to flush the first split block in the log wrap case.
|
||||
|
@ -1478,6 +1479,7 @@ xlog_sync(xlog_t *log,
|
|||
XFS_BUF_ZEROFLAGS(bp);
|
||||
XFS_BUF_BUSY(bp);
|
||||
XFS_BUF_ASYNC(bp);
|
||||
bp->b_flags |= XBF_LOG_BUFFER;
|
||||
if (log->l_mp->m_flags & XFS_MOUNT_BARRIER)
|
||||
XFS_BUF_ORDERED(bp);
|
||||
dptr = XFS_BUF_PTR(bp);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue