All of lore.kernel.org
 help / color / mirror / Atom feed
* [Ocfs2-devel] [PATCH 0/7] ocfs2: allocate blocks in direct I/O write
@ 2014-09-10 12:38 WeiWei Wang
  2014-09-10 19:42 ` Andrew Morton
  0 siblings, 1 reply; 4+ messages in thread
From: WeiWei Wang @ 2014-09-10 12:38 UTC (permalink / raw)
  To: ocfs2-devel

hi all,
In ocfs2 append I/O write and fill holes I/O write situation, blocks have not been allocated yet, so the direct I/O write will fallback to buffer I/O write.
Buffer I/O write the data to page cache first, then flush the page cache to disk, this will consume some performance. In this patch, the direct I/O write
doesn't not need to fallback to buffer I/O write any more because the allocate blocks are enabled in direct I/O now.

This patch set can be applied against 3.17-rc4 branch of ocfs2 directly.

Thanks,
							-- Wang

Weiwei Wang (7)
	ocfs2: eliminate the static flag of some functions
	ocfs2: add two functions of add and remove inode in orphan dir
	ocfs2: add orphan recovery types in ocfs2_recover_orphans
	ocfs2: add and remove inode to orphan in ocfs2_direct_IO
	ocfs2: allocate blocks in ocfs2_direct_IO_get_blocks
	ocfs2: do not fallback to buffer I/O write if appending
	ocfs2: do not fallback to buffer I/O write if fill holes

 fs/ocfs2/aops.c    | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
------
 fs/ocfs2/file.c    | 104 +++++++++++++++++++++++++++++++----------------------------------------------------
 fs/ocfs2/file.h    |   9 ++++++++
 fs/ocfs2/journal.c |  90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
 fs/ocfs2/journal.h |   5 ++++
 fs/ocfs2/namei.c   | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
---------
 fs/ocfs2/namei.h   |  21 ++++++++++++++++-
 fs/ocfs2/ocfs2.h   |   6 +++++
 8 files changed, 451 insertions(+), 105 deletions(-)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Ocfs2-devel] [PATCH 0/7] ocfs2: allocate blocks in direct I/O write
  2014-09-10 12:38 [Ocfs2-devel] [PATCH 0/7] ocfs2: allocate blocks in direct I/O write WeiWei Wang
@ 2014-09-10 19:42 ` Andrew Morton
  2014-09-12  1:28   ` WeiWei Wang
  2014-09-17  2:24   ` Joseph Qi
  0 siblings, 2 replies; 4+ messages in thread
From: Andrew Morton @ 2014-09-10 19:42 UTC (permalink / raw)
  To: ocfs2-devel

On Wed, 10 Sep 2014 20:38:04 +0800 WeiWei Wang <wangww631@huawei.com> wrote:

> hi all,
> In ocfs2 append I/O write and fill holes I/O write situation, blocks have not been allocated yet, so the direct I/O write will fallback to buffer I/O write.
> Buffer I/O write the data to page cache first, then flush the page cache to disk, this will consume some performance. In this patch, the direct I/O write
> doesn't not need to fallback to buffer I/O write any more because the allocate blocks are enabled in direct I/O now.
> 

The entire point of the patchset is to improve performance, but the
changelog contains no performance measurements!  How do we know it's
worth considering?  Please include quantitative benchmarking results
in the changelog.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Ocfs2-devel] [PATCH 0/7] ocfs2: allocate blocks in direct I/O write
  2014-09-10 19:42 ` Andrew Morton
@ 2014-09-12  1:28   ` WeiWei Wang
  2014-09-17  2:24   ` Joseph Qi
  1 sibling, 0 replies; 4+ messages in thread
From: WeiWei Wang @ 2014-09-12  1:28 UTC (permalink / raw)
  To: ocfs2-devel

On 2014/9/11 3:42, Andrew Morton wrote:
> On Wed, 10 Sep 2014 20:38:04 +0800 WeiWei Wang <wangww631@huawei.com> wrote:
> 
>> hi all,
>> In ocfs2 append I/O write and fill holes I/O write situation, blocks have not been allocated yet, so the direct I/O write will fallback to buffer I/O write.
>> Buffer I/O write the data to page cache first, then flush the page cache to disk, this will consume some performance. In this patch, the direct I/O write
>> doesn't not need to fallback to buffer I/O write any more because the allocate blocks are enabled in direct I/O now.
>>
> 
> The entire point of the patchset is to improve performance, but the
> changelog contains no performance measurements!  How do we know it's
> worth considering?  Please include quantitative benchmarking results
> in the changelog.
> 
>

 We test the performance under the virtualized scenarios before,
IO from iometer tool within a virtual machine which running on the
Xen virtualization environment, benchmarking results are measured
by iops, 5 seconds take once iops, in this situation, all IO take
O_DIRECT flag, enable allocate blocks in O_DIRECT write brings up
5% IOPS performance improvement in append sequential write.
  Changelog description of this commit patchset may be not very
accurate, we mainly want to describe that if the O_DIRECT write
block allocation is supported, page cache will not be used any more
in the O_DIRECT write, memory fragmentation will be reduced and page
cache can be managed more effective both. When O_DIRECT flag is set,
we really want to go O_DIRECT write, not buffer I/O. In append
write and fill hole write situations, O_DIRECT write will not fallback
to buffer I/O any more.
  Besides, other modern filesystems like ext4 also support direct io
with block allocation. So I think this feature is valuable.

Thanks,
					     --Wang

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Ocfs2-devel] [PATCH 0/7] ocfs2: allocate blocks in direct I/O write
  2014-09-10 19:42 ` Andrew Morton
  2014-09-12  1:28   ` WeiWei Wang
@ 2014-09-17  2:24   ` Joseph Qi
  1 sibling, 0 replies; 4+ messages in thread
From: Joseph Qi @ 2014-09-17  2:24 UTC (permalink / raw)
  To: ocfs2-devel

Hi Andrew,
Currently in case of O_DIRECT append write (block not allocated yet),
ocfs2 will fall back to buffered I/O. This has some disadvantages.
Firstly, it is not the behavior as expected. Secondly, it will consume
huge page cache, e.g. in mass backup scenario. Thirdly, modern
filesystems such as ext4 support this feature.
So please consider, thanks.

On 2014/9/11 3:42, Andrew Morton wrote:
> On Wed, 10 Sep 2014 20:38:04 +0800 WeiWei Wang <wangww631@huawei.com> wrote:
> 
>> hi all,
>> In ocfs2 append I/O write and fill holes I/O write situation, blocks have not been allocated yet, so the direct I/O write will fallback to buffer I/O write.
>> Buffer I/O write the data to page cache first, then flush the page cache to disk, this will consume some performance. In this patch, the direct I/O write
>> doesn't not need to fallback to buffer I/O write any more because the allocate blocks are enabled in direct I/O now.
>>
> 
> The entire point of the patchset is to improve performance, but the
> changelog contains no performance measurements!  How do we know it's
> worth considering?  Please include quantitative benchmarking results
> in the changelog.
> 
> 
> 
> _______________________________________________
> Ocfs2-devel mailing list
> Ocfs2-devel at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/ocfs2-devel
> 
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-09-17  2:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-10 12:38 [Ocfs2-devel] [PATCH 0/7] ocfs2: allocate blocks in direct I/O write WeiWei Wang
2014-09-10 19:42 ` Andrew Morton
2014-09-12  1:28   ` WeiWei Wang
2014-09-17  2:24   ` Joseph Qi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.