From: Tao Ma <tao.ma@oracle.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH 0/5 v2] Add readahead support in CoW for reflinked files.
Date: Wed, 14 Jul 2010 15:52:26 +0800 [thread overview]
Message-ID: <4C3D6CBA.10401@oracle.com> (raw)
Hi all,
When we try to CoW some clusters for a reflinked file, we have to read
the contents first, allocate some clusters and then map these pages to
the new clusters. Currently, we use block_read_full_page to read it, but
it is a little bit slower.
So this patch set try to add readahead support for CoW. Before we
start, we call readahead first so that the pages can be read at the very
first. And during CoW, when we find a readahead page, we know that we
need to move the readahead window, so a new asyncreadahead is called.
I have a small test to show how readahead speed up CoW.
readahead_test()
{
MNT_DIR=/mnt/ocfs2
DEVICE=/dev/sda8
echo 'y'|mkfs.ocfs2 --fs-features=local,refcount $DEVICE
mount -t ocfs2 $DEVICE $MNT_DIR
FILE=$MNT_DIR/$RANDOM
REFLINK=$MNT_DIR/$RANDOM
dd if=/dev/zero of=$FILE bs=1M count=1000
reflink $FILE $REFLINK
dd if=/dev/zero of=$REFLINK bs=1M count=1000 conv=notrunc
umount $MNT_DIR
}
Without these patch set, the 2nd dd has a i/o speed of 22MB/s.
with the patch set, the i/o speed is increased to about 40MB/s.
Any comments are welcomed.
Regards,
Tao
next reply other threads:[~2010-07-14 7:52 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-14 7:52 Tao Ma [this message]
2010-07-14 7:53 ` [Ocfs2-devel] [PATCH 1/5] ocfs2: pass struct file* to ocfs2_write_begin_nolock Tao Ma
2010-07-14 7:53 ` [Ocfs2-devel] [PATCH 2/5] ocfs2: pass struct file* to ocfs2_prepare_inode_for_write Tao Ma
2010-07-14 7:53 ` [Ocfs2-devel] [PATCH 3/5] ocfs2: Add struct file to ocfs2_refcount_cow Tao Ma
2010-07-14 7:53 ` [Ocfs2-devel] [PATCH 4/5] ocfs2: Add readahead support for CoW Tao Ma
2010-07-14 7:53 ` [Ocfs2-devel] [PATCH 5/5] ocfs2: Add readhead during CoW Tao Ma
2010-07-15 2:31 ` [Ocfs2-devel] [PATCH 0/5 v2] Add readahead support in CoW for reflinked files Joel Becker
2010-07-15 3:04 ` Tao Ma
2010-08-12 2:25 ` Joel Becker
2010-08-12 3:18 ` Tao Ma
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C3D6CBA.10401@oracle.com \
--to=tao.ma@oracle.com \
--cc=ocfs2-devel@oss.oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).