From: Sascha Hauer <s.hauer@pengutronix.de>
To: Barebox List <barebox@lists.infradead.org>
Subject: [PATCH 0/4] add discard_range to improve write speed on block devices
Date: Fri, 13 Dec 2019 14:20:51 +0100 [thread overview]
Message-ID: <20191213132055.7461-1-s.hauer@pengutronix.de> (raw)
This implements an idea Lucas came up with: Our block layer is quite
stupid. It works on chunks from which one is currently 16KiB in size.
Whenever such a chunk is written to we must write the whole chunk which
also means we have to read it from the device first in order to keep
unaffected data. This series adds a discard_range() function which
can be used to tell the block layer that a certain range of the device
will be overwritten and the current content is no longer needed and
thus doesn't have to be read. With this I saw a speed gain of around
30% when writing to a SD card.
This series still needs a closer look before I want to merge it, but
it's already worth being looked at ;)
Sascha
Sascha Hauer (4):
fs: Introduce discard_range()
cdev: Add discard_range hook
block: Implement discard_range
copy_file: call discard_range on destination file
common/block.c | 21 +++++++++++++++++++++
fs/devfs.c | 21 +++++++++++++++++++++
fs/fs.c | 25 +++++++++++++++++++++++++
include/block.h | 3 +++
include/driver.h | 1 +
include/fs.h | 3 +++
lib/libfile.c | 2 ++
7 files changed, 76 insertions(+)
--
2.24.0
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next reply other threads:[~2019-12-13 13:21 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-13 13:20 Sascha Hauer [this message]
2019-12-13 13:20 ` [PATCH 1/4] fs: Introduce discard_range() Sascha Hauer
2019-12-13 13:20 ` [PATCH 2/4] cdev: Add discard_range hook Sascha Hauer
2019-12-13 13:20 ` [PATCH 3/4] block: Implement discard_range Sascha Hauer
2019-12-13 13:20 ` [PATCH 4/4] copy_file: call discard_range on destination file Sascha Hauer
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=20191213132055.7461-1-s.hauer@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.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