From: Jeff Moyer <jmoyer@redhat.com>
To: Mark Lord <kernel@teksavvy.com>
Cc: "Ted Ts'o" <tytso@mit.edu>,
James Bottomley <James.Bottomley@suse.de>,
Greg Freemyer <greg.freemyer@gmail.com>,
Christoph Hellwig <hch@infradead.org>,
Matthew Wilcox <matthew@wil.cx>, Josef Bacik <josef@redhat.com>,
Lukas Czerner <lczerner@redhat.com>,
linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org, sandeen@redhat.com
Subject: Re: [PATCH 1/2] fs: Do not dispatch FITRIM through separate super_operation
Date: Fri, 19 Nov 2010 08:58:44 -0500 [thread overview]
Message-ID: <x49wro9za7f.fsf@segfault.boston.devel.redhat.com> (raw)
In-Reply-To: <4CE5F2A1.2000009@teksavvy.com> (Mark Lord's message of "Thu, 18 Nov 2010 22:44:33 -0500")
Mark Lord <kernel@teksavvy.com> writes:
> On 10-11-18 08:33 PM, Ted Ts'o wrote:
>>>>
>>>> Before we go gung ho on this, there's no evidence that N discontiguous
>>>> ranges in one command are any better than the ranges sent N times ...
>>>> the same amount of erase overhead gets sent on SSDs.
>>>
>>> No, we do have evidence: execution time of the TRIM commands on the SSD.
>>>
>>> The one-range-at-a-time is incredibly slow compared to multiple
>>> ranges at a time. That slowness comes from somewhere, with about
>>> 99.9% certainty that it is due to the drive performing slow flash
>>> erase cycles.
>>
>> Mark, I think you are over-generalizing here. You have observed with
>> some number of flash drives --- maybe only one, but I don't know that
>> for sure --- that TRIM is slow. Even if we grant that you are correct
>> in your conclusion that it is because the drive is doing slow flash
>> erase cycles (and I don't completely accept that; I haven't seen your
>> your measurements since we know that any kind of command that requires
>> a queue drain/flush before it can execute is going to be slow, and I
>> don't know what kind of _slow_ you are observing).
>
> I do this stuff on modest hardware: ata_piix.
> There is NO QUEUE TO FLUSH.
>
> So one might expect TRIM to operate at the same speed as ordinary WRITEs.
> But it doesn't. When I measured this in detail (and things have not changed
> much since then), we were talking 10s of milliseconds to 100s of milliseconds
> per TRIM command.
>
> The only possible explanation for that would be waiting on flash erase commands.
If you guys want to test how long trims take, Lukas wrote a test program
that does this. It can be found here:
http://sourceforge.net/projects/test-discard/
It will even spit out nice graphs that show you b/w, average trim
duration, maximum duration, etc.
Some devices are better than others. We've definitely seen trims take a
lot of time compared to regular I/O. However, using the batched discard
ioctl in a cron job, I don't think we have to worry about this
particular problem. And I don't buy the argument that users want to do
this by hand. Most users want things to Just Work(TM).
Cheers,
Jeff
next prev parent reply other threads:[~2010-11-19 14:03 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-18 7:36 [PATCH 1/2] fs: Do not dispatch FITRIM through separate super_operation Lukas Czerner
2010-11-18 7:36 ` [PATCH 2/2] ext4: Add EXT4_IOC_TRIM ioctl to handle batched discard Lukas Czerner
2010-11-19 16:19 ` Ted Ts'o
2010-11-19 16:26 ` Lukas Czerner
2010-11-20 1:37 ` Ted Ts'o
2010-11-18 13:06 ` [PATCH 1/2] fs: Do not dispatch FITRIM through separate super_operation Matthew Wilcox
2010-11-18 13:48 ` Josef Bacik
2010-11-18 14:19 ` Matthew Wilcox
2010-11-18 14:29 ` Christoph Hellwig
2010-11-18 17:19 ` James Bottomley
2010-11-18 17:22 ` Jeff Moyer
2010-11-18 17:41 ` James Bottomley
2010-11-18 20:04 ` Greg Freemyer
2010-11-18 21:42 ` Mark Lord
2010-11-18 21:44 ` Mark Lord
2010-11-18 21:50 ` James Bottomley
2010-11-18 22:07 ` Mark Lord
2010-11-19 1:33 ` Ted Ts'o
2010-11-19 3:44 ` Mark Lord
2010-11-19 13:58 ` Jeff Moyer [this message]
2010-11-18 23:52 ` Martin K. Petersen
2010-11-19 0:34 ` Mark Lord
2010-11-19 1:16 ` Greg Freemyer
2010-11-19 11:55 ` Christoph Hellwig
2010-11-19 14:01 ` Mark Lord
2010-11-19 14:06 ` Christoph Hellwig
2010-11-19 14:48 ` Mark Lord
2010-11-19 14:54 ` Christoph Hellwig
2010-11-19 15:24 ` Mark Lord
2010-11-19 15:34 ` Christoph Hellwig
2010-11-19 16:20 ` Greg Freemyer
2010-11-19 16:38 ` Christoph Hellwig
2010-11-19 18:06 ` Lukas Czerner
2010-11-19 18:10 ` Lukas Czerner
2010-11-19 18:14 ` Lukas Czerner
2010-11-19 19:29 ` Chris Mason
2010-11-19 1:49 ` Martin K. Petersen
2010-11-19 3:42 ` Mark Lord
2010-11-18 18:05 ` Jamie Lokier
2010-11-18 19:32 ` Markus Trippelsdorf
2010-11-18 21:45 ` Mark Lord
2010-11-18 21:50 ` Markus Trippelsdorf
2010-11-18 22:09 ` Mark Lord
2010-11-18 17:35 ` Lukas Czerner
2010-11-19 12:16 ` Steven Whitehouse
2010-11-19 13:53 ` Mark Lord
2010-11-19 14:02 ` Ted Ts'o
2010-11-19 14:10 ` Christoph Hellwig
2010-11-19 14:50 ` Mark Lord
2010-11-19 15:35 ` Mark Lord
2010-11-19 15:44 ` Lukas Czerner
2010-11-19 16:30 ` Ted Ts'o
2010-11-19 22:49 ` Mark Lord
2010-11-25 2:48 ` Mark Lord
2010-11-25 4:23 ` Martin K. Petersen
2010-11-25 14:44 ` Mark Lord
2010-11-25 4:41 ` Greg Freemyer
2010-11-25 14:53 ` Mark Lord
2010-11-25 16:24 ` Greg Freemyer
2010-11-26 13:49 ` Mark Lord
2010-11-26 14:00 ` Lukas Czerner
[not found] ` <20101119141007.GB25488@infradead.org>
2010-11-19 15:37 ` Ted Ts'o
2010-11-19 15:50 ` Christoph Hellwig
2010-11-19 16:16 ` Ted Ts'o
2010-11-18 17:55 ` Chris Mason
2010-12-03 18:24 ` Ric Wheeler
2010-11-18 21:37 ` Mark Lord
2010-11-19 11:09 ` Christoph Hellwig
2010-11-19 13:54 ` Mark Lord
2010-11-19 14:40 ` Chris Mason
2010-11-19 14:53 ` Mark Lord
2010-11-19 14:57 ` Christoph Hellwig
2010-11-19 15:21 ` Mark Lord
2010-12-07 9:27 ` Christoph Hellwig
2010-12-07 16:52 ` Chris Mason
2011-06-02 4:52 ` Kyungmin Park
2011-06-02 8:14 ` Lukas Czerner
2011-06-03 2:06 ` Dave Chinner
2011-06-03 4:25 ` Kyungmin Park
2010-11-19 15:30 ` Mark Lord
2010-11-21 19:07 ` Valdis.Kletnieks
2010-11-21 20:20 ` James Bottomley
2010-11-18 14:31 ` Josef Bacik
2010-11-18 14:36 ` Tao Ma
2010-11-19 15:41 ` Ted Ts'o
2010-11-19 15:50 ` Christoph Hellwig
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=x49wro9za7f.fsf@segfault.boston.devel.redhat.com \
--to=jmoyer@redhat.com \
--cc=James.Bottomley@suse.de \
--cc=greg.freemyer@gmail.com \
--cc=hch@infradead.org \
--cc=josef@redhat.com \
--cc=kernel@teksavvy.com \
--cc=lczerner@redhat.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matthew@wil.cx \
--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 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).