From: Mark Lord <liml@rtr.ca>
To: Theodore Tso <tytso@mit.edu>,
Arjan van de Ven <arjan@infradead.org>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
James Bottomley <James.Bottomley@suse.de>,
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 13:37:07 -0400 [thread overview]
Message-ID: <4A8843C3.3020409@rtr.ca> (raw)
In-Reply-To: <4A8841D7.10506@rtr.ca>
Mark Lord wrote:
..
> As you can see, we're now into the 100 millisecond range
> for successive TRIM-followed-by-TRIM commands.
>
> Those are all for single extents. I will follow-up with a small
> amount of similar data for TRIMs with multiple extents.
..
Here's the exact same TRIM ranges, but issued with *two* extents
per TRIM command, and again *without* the "sleep 1" between them:
Beginning TRIM operations..
Trimming 2 free extents encompassing 686 sectors (0 MB)
Trimming 2 free extents encompassing 236 sectors (0 MB)
Trimming 2 free extents encompassing 2186 sectors (1 MB)
Trimming 2 free extents encompassing 2206 sectors (1 MB)
Trimming 2 free extents encompassing 1494 sectors (1 MB)
Trimming 2 free extents encompassing 1086 sectors (1 MB)
Trimming 2 free extents encompassing 1658 sectors (1 MB)
Trimming 2 free extents encompassing 14250 sectors (7 MB)
Done.
[ 1528.761626] ata_qc_issue: ATA_CMD_DSM starting
[ 1528.761825] trim_completed: ATA_CMD_DSM took 419952 cycles
[ 1528.807158] ata_qc_issue: ATA_CMD_DSM starting
[ 1528.919035] trim_completed: ATA_CMD_DSM took 241772908 cycles
[ 1528.956048] ata_qc_issue: ATA_CMD_DSM starting
[ 1529.068536] trim_completed: ATA_CMD_DSM took 243085505 cycles
[ 1529.156661] ata_qc_issue: ATA_CMD_DSM starting
[ 1529.266377] trim_completed: ATA_CMD_DSM took 237098927 cycles
[ 1529.367212] ata_qc_issue: ATA_CMD_DSM starting
[ 1529.464676] trim_completed: ATA_CMD_DSM took 210619370 cycles
[ 1529.518619] ata_qc_issue: ATA_CMD_DSM starting
[ 1529.630444] trim_completed: ATA_CMD_DSM took 241654712 cycles
[ 1529.739335] ata_qc_issue: ATA_CMD_DSM starting
[ 1529.829826] trim_completed: ATA_CMD_DSM took 195545233 cycles
[ 1529.958442] ata_qc_issue: ATA_CMD_DSM starting
[ 1530.028356] trim_completed: ATA_CMD_DSM took 151077251 cycles
Next, with *four* extents per TRIM:
Beginning TRIM operations..
Trimming 4 free extents encompassing 922 sectors (0 MB)
Trimming 4 free extents encompassing 4392 sectors (2 MB)
Trimming 4 free extents encompassing 2580 sectors (1 MB)
Trimming 4 free extents encompassing 15908 sectors (8 MB)
Done.
[ 1728.923119] ata_qc_issue: ATA_CMD_DSM starting
[ 1728.923343] trim_completed: ATA_CMD_DSM took 460590 cycles
[ 1728.975082] ata_qc_issue: ATA_CMD_DSM starting
[ 1729.087266] trim_completed: ATA_CMD_DSM took 242429200 cycles
[ 1729.170167] ata_qc_issue: ATA_CMD_DSM starting
[ 1729.282718] trim_completed: ATA_CMD_DSM took 243229428 cycles
[ 1729.382328] ata_qc_issue: ATA_CMD_DSM starting
[ 1729.481364] trim_completed: ATA_CMD_DSM took 214012942 cycles
And with *eight* extents per TRIM:
Beginning TRIM operations..
Trimming 8 free extents encompassing 5314 sectors (3 MB)
Trimming 8 free extents encompassing 18488 sectors (9 MB)
Done.
[ 1788.289669] ata_qc_issue: ATA_CMD_DSM starting
[ 1788.290247] trim_completed: ATA_CMD_DSM took 1228539 cycles
[ 1788.327223] ata_qc_issue: ATA_CMD_DSM starting
[ 1788.440490] trim_completed: ATA_CMD_DSM took 244773243 cycles
And finally, with everything in a single TRIM:
Beginning TRIM operations..
Trimming 16 free extents encompassing 23802 sectors (12 MB)
Done.
[ 1841.561147] ata_qc_issue: ATA_CMD_DSM starting
[ 1841.563217] trim_completed: ATA_CMD_DSM took 4458480 cycles
Notice how the first TRIM of each group above shows an artificially
short completion time, because the firmware seems to return "done"
before it's really done. Subsequent TRIMs seem to have to wait
for the previous one to really complete, and thus give more reliable
timing data for our purposes.
Cheers
--
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 17:37 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 [this message]
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 17:37 ` Mark Lord
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
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=4A8843C3.3020409@rtr.ca \
--to=liml@rtr.ca \
--cc=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=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=tytso@mit.edu \
--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