Commit 1fca3a05 authored by Hisashi Hifumi's avatar Hisashi Hifumi Committed by Mark Fasheh

ocfs2: Pagecache usage optimization on ocfs2

A page can have multiple buffers and even if a page is not uptodate, some buffers
can be uptodate on pagesize != blocksize environment.
This aops checks that all buffers which correspond to a part of a file
that we want to read are uptodate. If so, we do not have to issue actual
read IO to HDD even if a page is not uptodate because the portion we
want to read are uptodate.
"block_is_partially_uptodate" function is already used by ext2/3/4.
With the following patch random read/write mixed workloads or random read after
random write workloads can be optimized and we can get performance improvement.
Signed-off-by: default avatarHisashi Hifumi <hifumi.hisashi@oss.ntt.co.jp>
Signed-off-by: default avatarMark Fasheh <mfasheh@suse.com>
parent 6ca497a8
...@@ -1967,4 +1967,5 @@ const struct address_space_operations ocfs2_aops = { ...@@ -1967,4 +1967,5 @@ const struct address_space_operations ocfs2_aops = {
.invalidatepage = ocfs2_invalidatepage, .invalidatepage = ocfs2_invalidatepage,
.releasepage = ocfs2_releasepage, .releasepage = ocfs2_releasepage,
.migratepage = buffer_migrate_page, .migratepage = buffer_migrate_page,
.is_partially_uptodate = block_is_partially_uptodate,
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment