From: Douglas Gilbert <dgilbert@interlog.com>
To: Matthew Wilcox <willy@linux.intel.com>
Cc: 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
Subject: Re: Discard support (was Re: [PATCH] swap: send callback when swap slot is freed)
Date: Thu, 13 Aug 2009 14:08:54 -0400 [thread overview]
Message-ID: <4A8456B6.9050503@interlog.com> (raw)
In-Reply-To: <20090813151312.GA13559@linux.intel.com>
Matthew Wilcox wrote:
> On Wed, Aug 12, 2009 at 11:48:27PM +0100, Hugh Dickins wrote:
>> But fundamentally, though I can see how this cutdown communication
>> path is useful to compcache, I'd much rather deal with it by the more
>> general discard route if we can. (I'm one of those still puzzled by
>> the way swap is mixed up with block device in compcache: probably
>> because I never found time to pay attention when you explained.)
>>
>> You're right to question the utility of the current swap discard
>> placement. That code is almost a year old, written from a position
>> of great ignorance, yet only now do we appear to be on the threshold
>> of having an SSD which really supports TRIM (ah, the Linux ATA TRIM
>> support seems to have gone missing now, but perhaps it's been
>> waiting for a reality to check against too - Willy?).
>
> I am indeed waiting for hardware with TRIM support to appear on my
> desk before resubmitting the TRIM code. It'd also be nice to be able to
> get some performance numbers.
>
>> I won't be surprised if we find that we need to move swap discard
>> support much closer to swap_free (though I know from trying before
>> that it's much messier there): in which case, even if we decided to
>> keep your hotline to compcache (to avoid allocating bios etc.), it
>> would be better placed alongside.
>
> It turns out there are a lot of tradeoffs involved with discard, and
> they're different between TRIM and UNMAP.
>
> Let's start with UNMAP. This SCSI command is used by giant arrays.
> They want to do Thin Provisioning, so allocate physical storage to virtual
> LUNs on demand, and want to deallocate it when they get an UNMAP command.
> They allocate storage in large chunks (hundreds of kilobytes at a time).
> They only care about discards that enable them to free an entire chunk.
> The vast majority of users *do not care* about these arrays, because
> they don't have one, and will never be able to afford one. We should
> ignore the desires of these vendors when designing our software.
Yes, the SCSI UNMAP command has high end uses with
maximum and optimal values specified in the Block Limits
VPD page. There is nothing stopping the SCSI UNMAP command
trimming a single logical block.
Being pedantic again there is no ATA TRIM command, there is
DATA SET MANAGEMENT command with a "Trim" bit, a count
field (2 byte, permitting up to 65536, 512 byte blocks to
be trimmed) and a LBA field which is reserved (??
d2015r1a.pdf).
As I noted a week ago we will need to revisit the SATL code
in libata if SAT-2 in its current form gets approved. Discard
support may be another reason to visit that SATL code. Since
we have many SATA devices being viewed as "SCSI" due to
libata's SATL, mapping the SCSI UNMAP command ** to one or more
ATA DATA SET MANAGEMENT commands may be helpful. IMO that
would be simpler than upper layers needing to worry about
using the SCSI ATA PASS-THROUGH commands to get Trim
functionality.
** and the SCSI WRITE SAME commands with their Unmap bits set
Doug Gilbert
--
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>
prev parent reply other threads:[~2009-08-13 18:09 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
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 [this message]
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=4A8456B6.9050503@interlog.com \
--to=dgilbert@interlog.com \
--cc=hugh.dickins@tiscali.co.uk \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=ngupta@vflare.org \
--cc=peterz@infradead.org \
--cc=willy@linux.intel.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