From: Tejun Heo <tj@kernel.org>
To: Tanya Brokhman <tlinder@codeaurora.org>
Cc: Jens Axboe <axboe@kernel.dk>,
linux-mmc@vger.kernel.org, merez@codeaurora.org,
kdorfman@codeaurora.org
Subject: Re: FLUSH mechanism implementation in block layer
Date: Tue, 9 Apr 2013 12:03:36 -0700 [thread overview]
Message-ID: <20130409190336.GG6186@mtj.dyndns.org> (raw)
In-Reply-To: <51624547.6000500@codeaurora.org>
Hey,
On Mon, Apr 08, 2013 at 07:19:19AM +0300, Tanya Brokhman wrote:
> completed after the FLUSH. But perhaps there is a correct way to
> move the implementation of "ordering around the flush" to the block
> layer? Not that it would work better, it just feels that logically -
> block layer is the place to do it at.
> What do you think?
It used to be implemented that way - REQ_BARRIER. The problem was
that filesystems wanted multiple dependency streams - ie. fdatasync()
of a file doesn't need to drain all other IOs in progress. We could
do coloring of IOs - ie. give IOs which may need flushing later but
belong to different dependency streams different colors and let block
layer figure out partial drainining, which would work but at the same
time be pretty nasty and complex. The thing was that most filesystems
were already drainings IOs and didn't need any ordering guarantee from
block layer. hch took care of the outliers which were depending on
REQ_BARRIER ordering guarantees and we just stripped the ordering
mechanism which immediately improved performance noticeably in certain
workloads.
It was done that way mostly out of convenience at that time but now I
think of it it's the correct thing to do. It just is too much
information to communicate downwards and the extra communication
overhead doesn't really buy anything.
Thanks.
--
tejun
next prev parent reply other threads:[~2013-04-09 19:03 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-07 13:15 FLUSH mechanism implementation in block layer Tanya Brokhman
2013-04-07 16:33 ` Tejun Heo
2013-04-08 4:19 ` Tanya Brokhman
2013-04-09 19:03 ` Tejun Heo [this message]
2013-04-10 6:13 ` Tanya Brokhman
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=20130409190336.GG6186@mtj.dyndns.org \
--to=tj@kernel.org \
--cc=axboe@kernel.dk \
--cc=kdorfman@codeaurora.org \
--cc=linux-mmc@vger.kernel.org \
--cc=merez@codeaurora.org \
--cc=tlinder@codeaurora.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