From: Jens Axboe <jens.axboe@oracle.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Ric Wheeler <ricwheeler@gmail.com>,
linux-fsdevel@vger.kernel.org, gilad@codefidence.com
Subject: Re: [PATCH 1/5] [BLOCK] Add 'discard' request handling
Date: Fri, 8 Aug 2008 14:37:30 +0200 [thread overview]
Message-ID: <20080808123730.GU20055@kernel.dk> (raw)
In-Reply-To: <1218198768.12232.144.camel@pmac.infradead.org>
On Fri, Aug 08 2008, David Woodhouse wrote:
> On Fri, 2008-08-08 at 14:13 +0200, Jens Axboe wrote:
> > On Fri, Aug 08 2008, David Woodhouse wrote:
> > > On Fri, 2008-08-08 at 13:44 +0200, Jens Axboe wrote:
> > > >
> > > > Sigh indeed, ->issue_flush_fn() was the actual issuer, not the preparer.
> > > > Let me send a new diff. This adds the ->prepare_discard_fn() to do the
> > > > transformation, and also extends blkdev_issue_flush() to return error if
> > > > the IO was never queued because of some device in the stack not
> > > > supporting it.
> > >
> > > I think we still want the DISCARD flag in rq->cmd_flags. We can't rely
> > > on rq->cmd_type == REQ_TYPE_DISCARD because that may well be changed to
> > > something else (like REQ_TYPE_BLOCK_PC).
> >
> > It's getting a bit nasty at this point. Discard requests should be
> > treated as file system requests, if you want merging and sorting on
> > them.
>
> Except that they _can't_ be, because file system requests are normal
> reads and writes, and have just a single bit to indicate the direction.
>
> Although I suppose we could declare that a discard request is just like
> a write but with no buffer attached? I wasn't brave enough to attempt
> that though, because I think it'll get painful and lead to oopses in
> unexpected places.
It was a proposition with two options - one of them being that we treat
them as file system requests, which is a pre-requisite if you want to
have merging supported. If merging isn'ta must, then I would advocate
option 2 as out lined in the previous mail.
> So they're _not_ file system requests; they're different -- and they can
> be marked by the appropriate bit in rq->cmd_flags, just like a flush
> request is. There's no reason that has to prevent merging. The elevator
> needs to learn about discard requests anyway, and it doesn't really
> matter _how_ it recognises them as such. Surely?
Sure, I'm well aware that they are different in nature, I'm talking
about how you treat them in the block layer. You can't have it both
ways - either you use the fs submit path and get the merging, or you
don't. Adding merging on the side for these special requests is not an
option, that would be silly. You would dual path that basically, plus it
would exclude eventually doing overlap detection with real fs requests.
--
Jens Axboe
next prev parent reply other threads:[~2008-08-08 12:37 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <488B7281.4020007@gmail.com>
[not found] ` <20080726130200.f541e604.akpm@linux-foundation.org>
2008-08-05 1:45 ` [RFC] 'discard sectors' block request David Woodhouse
2008-08-05 1:59 ` Andrew Morton
2008-08-05 9:01 ` David Woodhouse
2008-08-05 11:42 ` Jens Axboe
2008-08-05 13:32 ` David Woodhouse
2008-08-05 14:21 ` Ric Wheeler
2008-08-05 16:29 ` David Woodhouse
2008-08-05 17:25 ` David Woodhouse
2008-08-06 9:25 ` [PATCH 1/5] [BLOCK] Add 'discard' request handling David Woodhouse
2008-08-06 16:19 ` OGAWA Hirofumi
2008-08-06 18:18 ` David Woodhouse
2008-08-06 19:28 ` OGAWA Hirofumi
2008-08-07 16:32 ` [PATCH 1/5, v2] " David Woodhouse
2008-08-07 18:41 ` [PATCH 1/5] " Jens Axboe
2008-08-08 9:33 ` David Woodhouse
2008-08-08 10:30 ` Jens Axboe
2008-08-08 10:49 ` Jens Axboe
2008-08-08 11:04 ` David Woodhouse
2008-08-08 11:20 ` Jens Axboe
2008-08-08 10:52 ` David Woodhouse
2008-08-08 11:09 ` Jens Axboe
2008-08-08 11:18 ` Jens Axboe
2008-08-08 11:29 ` David Woodhouse
2008-08-08 11:44 ` Jens Axboe
2008-08-08 11:47 ` Jens Axboe
2008-08-08 12:05 ` David Woodhouse
2008-08-08 12:13 ` Jens Axboe
2008-08-08 12:32 ` David Woodhouse
2008-08-08 12:37 ` Jens Axboe [this message]
2008-08-08 12:49 ` David Woodhouse
2008-08-10 1:05 ` Jamie Lokier
2008-08-08 15:32 ` David Woodhouse
2008-08-08 14:22 ` Matthew Wilcox
2008-08-08 14:27 ` David Woodhouse
2008-08-08 14:34 ` Matthew Wilcox
2008-08-06 9:25 ` [PATCH 2/5] [FAT] Let the block device know when sectors can be discarded David Woodhouse
2008-08-06 16:40 ` OGAWA Hirofumi
2008-08-06 17:14 ` OGAWA Hirofumi
2008-08-06 18:11 ` David Woodhouse
2008-08-06 19:10 ` OGAWA Hirofumi
2008-08-06 19:50 ` OGAWA Hirofumi
2008-08-06 20:10 ` OGAWA Hirofumi
2008-08-06 21:37 ` David Woodhouse
2008-08-07 16:09 ` David Woodhouse
2008-08-07 16:33 ` [PATCH 2/5, v2] " David Woodhouse
2008-08-06 9:25 ` [PATCH 3/5] [MTD] Support 'discard sectors' operation in translation layer support core David Woodhouse
2008-08-06 9:25 ` [PATCH 4/5] [MTD] [FTL] Support 'discard sectors' operation David Woodhouse
2008-08-06 9:25 ` [PATCH 5/5] [BLOCK] Fix up comments about matching flags between bio and rq David Woodhouse
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=20080808123730.GU20055@kernel.dk \
--to=jens.axboe@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=dwmw2@infradead.org \
--cc=gilad@codefidence.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=ricwheeler@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;
as well as URLs for NNTP newsgroup(s).