From: Zheng Liu <gnehzuil.liu@gmail.com>
To: Theodore Ts'o <tytso@mit.edu>
Cc: linux-ext4@vger.kernel.org,
Andreas Dilger <adilger.kernel@dilger.ca>,
Jan Kara <jack@suse.cz>, Zheng Liu <wenqing.lz@taobao.com>
Subject: Re: [PATCH v3 3/6] ext4: cache extent hole in extent status tree for ext4_da_map_blocks()
Date: Thu, 4 Sep 2014 21:04:48 +0800 [thread overview]
Message-ID: <20140904130448.GB13193@gmail.com> (raw)
In-Reply-To: <20140902024350.GS8974@thunk.org>
On Mon, Sep 01, 2014 at 10:43:50PM -0400, Theodore Ts'o wrote:
> On Thu, Aug 07, 2014 at 11:35:50AM +0800, Zheng Liu wrote:
> > From: Zheng Liu <wenqing.lz@taobao.com>
> >
> > Currently extent status tree doesn't cache extent hole when a write
> > looks up in extent tree to make sure whether a block has been allocated
> > or not. In this case, we don't put extent hole in extent cache because
> > later this extent might be removed and a new delayed extent might be
> > added back. But it will cause a defect when we do a lot of writes.
> > If we don't put extent hole in extent cache, the following writes also
> > need to access extent tree to look at whether or not a block has been
> > allocated. It brings a cache miss. This commit fixes this defect.
> > Meanwhile, if an inode has no any extent, this extent hole also will
> > be cached.
>
> Hi Zheng,
>
> I thought the reason why we have the EXT4_GET_BLOCKS_NO_PUT_HOLE flag
> is because in ext4_da_map_blocks(), if there is a hole, we will be
> immediately following it up with a call to ext4_es_insert_extent() to
> fill in the hole with the EXTENT_STATUS_DELAYED flag. The only time
> we don't is if we run into an ENOSPC error.
>
> Am I missing something?
Yes, you are right. The purpose is used to do the work like you said
above. As the commit log described this flag brings a huge number of
cache misses when an empty file is written. So it might be worth
putting a hole in the cache when delalloc is enabled.
Regards,
- Zheng
next prev parent reply other threads:[~2014-09-04 12:55 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-07 3:35 [PATCH v3 0/6] ext4: extents status tree shrinker improvement Zheng Liu
2014-08-07 3:35 ` [PATCH v3 1/6] ext4: improve extents status tree trace point Zheng Liu
2014-09-02 2:25 ` Theodore Ts'o
2014-08-07 3:35 ` [PATCH v3 2/6] ext4: track extent status tree shrinker delay statictics Zheng Liu
2014-08-27 13:26 ` Jan Kara
2014-09-04 12:10 ` Zheng Liu
2014-09-04 15:49 ` Theodore Ts'o
2014-08-07 3:35 ` [PATCH v3 3/6] ext4: cache extent hole in extent status tree for ext4_da_map_blocks() Zheng Liu
2014-08-27 13:55 ` Jan Kara
2014-09-04 13:05 ` Zheng Liu
2014-09-02 2:43 ` Theodore Ts'o
2014-09-04 13:04 ` Zheng Liu [this message]
2014-09-04 15:54 ` Theodore Ts'o
2014-08-07 3:35 ` [PATCH v3 4/6] ext4: change lru to round-robin in extent status tree shrinker Zheng Liu
2014-08-27 15:01 ` Jan Kara
2014-09-03 3:37 ` Theodore Ts'o
2014-09-03 15:31 ` Jan Kara
2014-09-03 20:00 ` Theodore Ts'o
2014-09-03 22:14 ` Jan Kara
2014-09-03 22:38 ` Theodore Ts'o
[not found] ` <20140904071553.GA26930@quack.suse.cz>
2014-09-04 15:44 ` Theodore Ts'o
2014-09-08 15:47 ` Jan Kara
2014-08-07 3:35 ` [PATCH v3 5/6] ext4: use a list to track all reclaimable objects for extent status tree Zheng Liu
2014-08-27 15:13 ` Jan Kara
2014-09-03 3:44 ` Theodore Ts'o
2014-08-07 3:35 ` [PATCH v3 6/6] ext4: use a garbage collection algorithm to manage object Zheng Liu
2014-08-27 15:24 ` Jan Kara
2014-10-20 14:48 ` [PATCH v3 0/6] ext4: extents status tree shrinker improvement Theodore Ts'o
2014-10-21 10:22 ` Jan Kara
2014-10-21 15:58 ` 刘峥(文卿)
2014-11-03 16:10 ` Jan Kara
2014-11-07 2:38 ` Zheng Liu
2014-11-13 23:40 ` Theodore Ts'o
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=20140904130448.GB13193@gmail.com \
--to=gnehzuil.liu@gmail.com \
--cc=adilger.kernel@dilger.ca \
--cc=jack@suse.cz \
--cc=linux-ext4@vger.kernel.org \
--cc=tytso@mit.edu \
--cc=wenqing.lz@taobao.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 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.