From: Arnd Bergmann <arnd@arndb.de>
To: Kyungmin Park <kmpark@infradead.org>
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
Lukas Czerner <lczerner@redhat.com>
Subject: Re: [PATCH v6] fat: Batched discard support for fat
Date: Wed, 30 Mar 2011 15:22:18 +0200 [thread overview]
Message-ID: <201103301522.18836.arnd@arndb.de> (raw)
In-Reply-To: <20110328103431.GA22323@july>
On Monday 28 March 2011, Kyungmin Park wrote:
> So you will go through (blocks, bytes...) 0 -> 20
>
> OOOO==O===OO===OOOOO==O===O===OOOOOOO===
> ^ ^
> 0 20
>
> So, you will call discard on extents:
>
> 0-3
> You'll skip 6 because is smaller than minlen
> 10-11
> 15-19
>
> instead of
>
> 0-3
> 10-11
> 15-19
> 30-36
Sorry for joining the discussion late, but shouldn't you also pass
the alignment of the discards?
FAT is typically used on cheap media that have very limited support
for garbage-collection, such as eMMC or SD cards.
On most SDHC cards, you only ever want to issue discard on full erase
blocks (allocation units per spec), typically sized 4 MB.
If you just pass the minimum length, the file system could end up
erasing a 4 MB section that spans two half erase blocks, or it
could span a few clusters of the following erase block, both of
which is not desirable from a performance point of view.
On other media, you have the same problem inside an erase block:
These might be able to discard parts of an erase block efficiently,
but normally not less than a flash page (typically 8 to 32 KB).
Again, you don't want to discard partial pages in this case, and
that is much more important than discarding a large number of pages
because it would result in an immediate copy-on-write operation.
Further, when you erase some pages inside of an erase block, you
probably should not span multiple erase blocks but instead issue
separate requests for each set of pages in one erase block.
Arnd
Arnd
next prev parent reply other threads:[~2011-03-30 13:22 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-28 10:34 [PATCH v6] fat: Batched discard support for fat Kyungmin Park
2011-03-29 5:04 ` OGAWA Hirofumi
2011-03-29 5:11 ` Kyungmin Park
2011-03-29 6:37 ` OGAWA Hirofumi
2011-03-29 6:42 ` Kyungmin Park
2011-03-29 7:28 ` OGAWA Hirofumi
2011-03-30 13:22 ` Arnd Bergmann [this message]
2011-03-30 13:50 ` Lukas Czerner
2011-03-30 13:58 ` Kyungmin Park
2011-03-30 14:45 ` Arnd Bergmann
2011-03-30 14:20 ` Arnd Bergmann
2011-03-30 14:44 ` Kyungmin Park
2011-03-30 15:06 ` Arnd Bergmann
2011-05-24 1:18 ` Kyungmin Park
2011-05-24 4:47 ` OGAWA Hirofumi
2011-05-24 5:21 ` Kyungmin Park
2011-05-24 6:39 ` OGAWA Hirofumi
2011-05-24 6:55 ` Kyungmin Park
2011-05-24 7:32 ` OGAWA Hirofumi
2011-05-24 8:54 ` Kyungmin Park
2011-05-24 9:44 ` OGAWA Hirofumi
2011-05-24 9:25 ` Lukas Czerner
2011-05-24 10:07 ` OGAWA Hirofumi
2011-05-24 10:44 ` Lukas Czerner
2011-05-24 11:14 ` OGAWA Hirofumi
2011-05-24 11:32 ` Lukas Czerner
2011-05-24 12:19 ` OGAWA Hirofumi
2011-05-24 13:30 ` Lukas Czerner
2011-05-24 14:19 ` OGAWA Hirofumi
2011-08-31 13:02 ` Kyungmin Park
2011-08-31 17:51 ` OGAWA Hirofumi
2011-10-05 14:38 ` Lukas Czerner
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=201103301522.18836.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=hirofumi@mail.parknet.co.jp \
--cc=kmpark@infradead.org \
--cc=lczerner@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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