From: James Bottomley <James.Bottomley@suse.de>
To: Arjan van de Ven <arjan@infradead.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>, Mark Lord <liml@rtr.ca>,
Chris Worley <worleys@gmail.com>, Matthew Wilcox <matthew@wil.cx>,
Bryan Donlan <bdonlan@gmail.com>,
david@lang.hm, Greg Freemyer <greg.freemyer@gmail.com>,
Markus Trippelsdorf <markus@trippelsdorf.de>,
Matthew Wilcox <willy@linux.intel.com>,
Hugh Dickins <hugh.dickins@tiscali.co.uk>,
Nitin Gupta <ngupta@vflare.org>, Ingo Molnar <mingo@elte.hu>,
Peter Zijlstra <peterz@infradead.org>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-scsi@vger.kernel.org, linux-ide@vger.kernel.org,
Linux RAID <linux-raid@vger.kernel.org>
Subject: Re: Discard support (was Re: [PATCH] swap: send callback when swap slot is freed)
Date: Sun, 16 Aug 2009 10:52:07 -0500 [thread overview]
Message-ID: <1250437927.3856.119.camel@mulgrave.site> (raw)
In-Reply-To: <20090816083434.2ce69859@infradead.org>
On Sun, 2009-08-16 at 08:34 -0700, Arjan van de Ven wrote:
> On Sun, 16 Aug 2009 15:05:30 +0100
> Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
>
> > On Sat, 15 Aug 2009 08:55:17 -0500
> > James Bottomley <James.Bottomley@suse.de> wrote:
> >
> > > On Sat, 2009-08-15 at 09:22 -0400, Mark Lord wrote:
> > > > James Bottomley wrote:
> > > > >
> > > > > This means you have to drain the outstanding NCQ commands
> > > > > (stalling the device) before you can send a TRIM. If we do
> > > > > this for every discard, the performance impact will be pretty
> > > > > devastating, hence the need to coalesce. It's nothing really
> > > > > to do with device characteristics, it's an ATA protocol problem.
> > > > ..
> > > >
> > > > I don't think that's really much of an issue -- we already have
> > > > to do that for cache-flushes whenever barriers are enabled. Yes
> > > > it costs, but not too much.
> > >
> > > That's not really what the enterprise is saying about flush
> > > barriers. True, not all the performance problems are NCQ queue
> > > drain, but for a steady workload they are significant.
> >
> > Flush barriers are nightmare for more than enterprise. You drive
> > basically goes for a hike for a bit which trashes interactivity as
> > well. If the device can't do trim and the like without a drain I
> > don't see much point doing it at all, except maybe to wait for idle
> > devices and run a filesystem managed background 'strimmer' thread to
> > just weed out now idle blocks that have stayed idle - eg by adding an
> > inode of all the deleted untrimmed blocks and giving it an irregular
> > empty ?
>
> trim is mostly for ssd's though, and those tend to not have the "goes
> for a hike" behavior as much......
Well, yes and no ... a lot of SSDs don't actually implement NCQ, so the
impact to them will be less ... although I think enterprise class SSDs
do implement NCQ.
> I wonder if it's worse to batch stuff up, because then the trim itself
> gets bigger and might take longer.....
So this is where we're getting into the realms of speculation. There
really are only about a couple of people out there with trim
implementing SSDs, so that's not really enough to make any judgement.
However, the enterprise has been doing UNMAP for a while, so we can draw
inferences from them since the SSD FTL will operate similarly. For
them, UNMAP is the same cost in terms of time regardless of the number
of extents. The reason is that it's moving the blocks from the global
in use list to the global free list. Part of the problem is that this
involves locking and quiescing, so UNMAP ends up being quite expensive
to the array but constant in terms of cost (hence they want as few
unmaps for as many sectors as possible).
For SSDs, the FTL has to have a separate operation: erase. Now, one
could see the correct implementation simply moving the sectors from the
in-use list to the to be cleaned list and still do the cleaning in the
background: that would be constant cost (but, again, likely expensive).
Of course, if SSD vendors decided to erase on the spot when seeing TRIM,
this wouldn't be true ...
James
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2009-08-16 15:52 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-12 14:37 [PATCH] swap: send callback when swap slot is freed Nitin Gupta
2009-08-12 22:48 ` Hugh Dickins
2009-08-13 2:30 ` Nitin Gupta
2009-08-13 6:53 ` Peter Zijlstra
2009-08-13 14:44 ` Nitin Gupta
2009-08-13 17:45 ` Hugh Dickins
2009-08-13 2:41 ` Nitin Gupta
2009-08-13 5:05 ` compcache as a pre-swap area (was: [PATCH] swap: send callback when swap slot is freed) Al Boldi
2009-08-13 17:31 ` Nitin Gupta
2009-08-14 4:02 ` Al Boldi
2009-08-14 4:53 ` compcache as a pre-swap area Nitin Gupta
2009-08-14 15:49 ` Al Boldi
2009-08-15 11:00 ` Al Boldi
2009-08-13 15:13 ` Discard support (was Re: [PATCH] swap: send callback when swap slot is freed) Matthew Wilcox
2009-08-13 15:17 ` david
2009-08-13 15:26 ` Matthew Wilcox
2009-08-13 15:43 ` James Bottomley
2009-08-13 18:22 ` Ric Wheeler
2009-08-13 16:13 ` Nitin Gupta
2009-08-13 16:26 ` Markus Trippelsdorf
2009-08-13 16:33 ` david
2009-08-13 18:15 ` Greg Freemyer
2009-08-13 19:18 ` James Bottomley
2009-08-13 20:31 ` Richard Sharpe
2009-08-14 22:03 ` Mark Lord
2009-08-14 22:54 ` Greg Freemyer
2009-08-15 13:12 ` Mark Lord
2009-08-13 20:44 ` david
2009-08-13 20:54 ` Bryan Donlan
2009-08-14 22:10 ` Mark Lord
2009-08-14 23:21 ` Chris Worley
2009-08-14 23:45 ` Matthew Wilcox
2009-08-15 0:19 ` Chris Worley
2009-08-15 0:30 ` Greg Freemyer
2009-08-15 0:38 ` Chris Worley
2009-08-15 1:55 ` Greg Freemyer
2009-08-15 13:20 ` Mark Lord
2009-08-16 22:52 ` Chris Worley
2009-08-17 2:03 ` Mark Lord
2009-08-15 12:59 ` James Bottomley
2009-08-15 13:22 ` Mark Lord
2009-08-15 13:55 ` James Bottomley
2009-08-15 17:39 ` jim owens
2009-08-16 17:08 ` Robert Hancock
2009-08-16 14:05 ` Alan Cox
2009-08-16 14:16 ` Mark Lord
2009-08-16 15:34 ` Arjan van de Ven
2009-08-16 15:44 ` Theodore Tso
2009-08-16 17:28 ` Mark Lord
2009-08-16 17:37 ` Mark Lord
2009-08-16 17:37 ` Mark Lord
2009-08-17 16:30 ` Bill Davidsen
2009-08-17 16:56 ` jim owens
2009-08-17 17:14 ` Bill Davidsen
2009-08-17 17:37 ` jim owens
2009-08-16 15:52 ` James Bottomley [this message]
2009-08-16 16:32 ` Mark Lord
2009-08-16 18:07 ` James Bottomley
2009-08-16 18:19 ` Mark Lord
2009-08-16 18:24 ` James Bottomley
2009-08-17 16:37 ` Bill Davidsen
2009-08-17 17:08 ` Greg Freemyer
2009-08-17 17:19 ` James Bottomley
2009-08-17 18:16 ` Ric Wheeler
2009-08-17 18:21 ` Greg Freemyer
2009-08-17 19:18 ` James Bottomley
2009-08-17 20:19 ` Mark Lord
2009-08-17 20:28 ` James Bottomley
2009-08-17 20:28 ` Mark Lord
2009-08-16 16:59 ` Christoph Hellwig
2009-08-17 4:24 ` Douglas Gilbert
2009-08-17 13:56 ` James Bottomley
2009-08-17 14:10 ` Matthew Wilcox
2009-08-17 19:12 ` Christoph Hellwig
2009-08-17 19:24 ` James Bottomley
2009-08-16 21:50 ` Discard support Roland Dreier
2009-08-16 22:06 ` Jeff Garzik
2009-08-16 22:13 ` Theodore Tso
2009-08-16 22:51 ` Mark Lord
2009-08-16 19:29 ` Discard support (was Re: [PATCH] swap: send callback when swap slot is freed) Alan Cox
2009-08-16 23:05 ` John Robinson
2009-08-17 2:05 ` Mark Lord
2009-08-13 21:28 ` Greg Freemyer
2009-08-13 22:20 ` Richard Sharpe
2009-08-14 0:19 ` Greg Freemyer
[not found] ` <46b8a8850908131758s781b07f6v2729483c0e50ae7a@mail.gmail.com>
2009-08-14 21:33 ` Greg Freemyer
2009-08-14 21:56 ` Discard support Roland Dreier
2009-08-14 22:10 ` Greg Freemyer
2009-08-13 17:19 ` Discard support (was Re: [PATCH] swap: send callback when swap slot is freed) Hugh Dickins
2009-08-13 18:08 ` Douglas Gilbert
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=1250437927.3856.119.camel@mulgrave.site \
--to=james.bottomley@suse.de \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arjan@infradead.org \
--cc=bdonlan@gmail.com \
--cc=david@lang.hm \
--cc=greg.freemyer@gmail.com \
--cc=hugh.dickins@tiscali.co.uk \
--cc=liml@rtr.ca \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-raid@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=markus@trippelsdorf.de \
--cc=matthew@wil.cx \
--cc=mingo@elte.hu \
--cc=ngupta@vflare.org \
--cc=peterz@infradead.org \
--cc=willy@linux.intel.com \
--cc=worleys@gmail.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