From: Zheng Liu <gnehzuil.liu@gmail.com>
To: Eric Sandeen <sandeen@redhat.com>
Cc: Theodore Ts'o <tytso@mit.edu>,
Dmitry Monakhov <dmonakhov@openvz.org>,
ext4 development <linux-ext4@vger.kernel.org>,
linux-fsdevel@vger.kernel.org, axboe@kernel.dk,
Jan Kara <jack@suse.cz>
Subject: Re: EXT4 nodelalloc => back to stone age.
Date: Tue, 02 Apr 2013 00:34:33 +0800 [thread overview]
Message-ID: <5159B719.8060804@gmail.com> (raw)
In-Reply-To: <5159AF21.1050805@redhat.com>
Hi Eric,
On 04/02/2013 12:00 AM, Eric Sandeen wrote:
> On 4/1/13 10:39 AM, Theodore Ts'o wrote:
>> On Mon, Apr 01, 2013 at 10:18:51AM -0500, Eric Sandeen wrote:
>>> I'd add:
>>>
>>> 3) Why do we have a "nodelalloc" mount option at all?
>>>
>>> but then I thought:
>>>
>>> Is it also this bad when using the ext4 driver to run an ext3 fs?
>>
>> Yes, and I there would be a similar performance problem if you are
>> using the ext3 file system driver, since ext3_*_writepage() also ends
>> up calling block_write_full_page() which will also result in the
>> writes happening with WRITE_SYNC.
>
>> The main reason why we keep nodelalloc at this point is bug-for-bug
>> compatibility with ext3 file systems --- basically, for users who are
>> using this as a workaround for the O_PONIES issue instead of fixing
>> their applications to use fsync() appropriately.
>
> Sorry for getting off the original thread here, but IMHO these are
> 2 different things:
>
> nondelalloc behavior makes sense for ext3, but:
> -o nodelalloc mount options don't make sense for ext4.
nodelalloc makes sense to me. In our product system, we met a latency
problem that is caused by delalloc feature. The workload is a web app
that does some append writes (approximately 5M/s), and wait flusher to
do write out. We obverse that on every 30 seconds the latency will
reach a high level (approximately 100-200ms or higher, but normally
10-20ms). The reason is that when flush tries to write dirty pages out,
it will take i_data_sem lock (write lock) and allocate some blocks for
these dirty pages. But in the mean time the app does some append
write(2)s that will try to take i_data_sem lock (read lock) too. So the
app will be delayed. So I think nodelalloc is still useful for us.
Regards,
- Zheng
next prev parent reply other threads:[~2013-04-01 16:34 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-01 11:06 EXT4 nodelalloc => back to stone age Dmitry Monakhov
2013-04-01 15:18 ` Eric Sandeen
2013-04-01 15:39 ` Theodore Ts'o
2013-04-01 16:00 ` Eric Sandeen
2013-04-01 16:34 ` Zheng Liu [this message]
2013-04-01 15:45 ` Chris Mason
2013-04-01 15:57 ` Chris Mason
2013-04-02 13:46 ` Jan Kara
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=5159B719.8060804@gmail.com \
--to=gnehzuil.liu@gmail.com \
--cc=axboe@kernel.dk \
--cc=dmonakhov@openvz.org \
--cc=jack@suse.cz \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=sandeen@redhat.com \
--cc=tytso@mit.edu \
/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.