diff options
author | Dave Chinner <dgc@sgi.com> | 2009-11-24 19:03:15 +0100 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2009-12-16 20:41:19 +0100 |
commit | 2ee1abad73a12df5521cd3f017f081f1f684a361 (patch) | |
tree | e44a88b0ae7f01d339426d7a6d18bde017bb9cf1 /include | |
parent | xfs: check for not fully initialized inodes in xfs_ireclaim (diff) | |
download | linux-2ee1abad73a12df5521cd3f017f081f1f684a361.tar.xz linux-2ee1abad73a12df5521cd3f017f081f1f684a361.zip |
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>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/fs.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index b23a7018eb90..cf7fc8a7fe6a 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -152,6 +152,7 @@ struct inodes_stat_t { #define WRITE_SYNC_PLUG (WRITE | (1 << BIO_RW_SYNCIO) | (1 << BIO_RW_NOIDLE)) #define WRITE_SYNC (WRITE_SYNC_PLUG | (1 << BIO_RW_UNPLUG)) #define WRITE_ODIRECT_PLUG (WRITE | (1 << BIO_RW_SYNCIO)) +#define WRITE_META (WRITE | (1 << BIO_RW_META)) #define SWRITE_SYNC_PLUG \ (SWRITE | (1 << BIO_RW_SYNCIO) | (1 << BIO_RW_NOIDLE)) #define SWRITE_SYNC (SWRITE_SYNC_PLUG | (1 << BIO_RW_UNPLUG)) |