From: Jens Axboe <axboe@suse.de>
To: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Cc: Jeff Garzik <jgarzik@pobox.com>,
Linux Kernel <linux-kernel@vger.kernel.org>,
Chris Mason <mason@suse.com>
Subject: Re: [PATCH] barrier patch set
Date: Sat, 20 Mar 2004 17:27:27 +0100 [thread overview]
Message-ID: <20040320162727.GJ2933@suse.de> (raw)
In-Reply-To: <200403201723.11906.bzolnier@elka.pw.edu.pl>
On Sat, Mar 20 2004, Bartlomiej Zolnierkiewicz wrote:
> On Saturday 20 of March 2004 10:53, Jens Axboe wrote:
> > On Sat, Mar 20 2004, Bartlomiej Zolnierkiewicz wrote:
> > > - do not use hwgroup->wrq (die!) and do not add drive->special_buf,
> > > just do what PM code does and other special commands do - use taskfile
> > > (yes, dirty stack allocation)
> >
> > Doesn't work for split flush, ie issue a bunch of flushes to devices,
> > then wait for them. I agree using ->wrq and special_buf is ugly as hell,
> > though.
>
> I can't see why it doesn't work, please explain.
You'd need to pass on some opaque buffer from the issuer to the flush
cache function for that to work, which would be ugly.
> > > - why does blkdev_issue_flush() add REQ_BLOCK_PC to rq->flags?
> >
> > Ehm, because it _is_ a REQ_BLOCK_PC? ;-)
>
> Ok, it is PC till SCSI->IDE transform, then it is no longer PC. :)
Right, and during that transform, REQ_BLOCK_PC is cleared:
+ rq->flags &= ~REQ_BLOCK_PC;
+ rq->flags |= REQ_DRIVE_TASK | REQ_STARTED;
(REQ_STARTED should be removed, btw).
> > > - why are we doing pre-flush?
> >
> > To ensure previously written data is on platter first.
>
> I know this, I want to know what for you are doing this?
>
> Previously written data is already acknowledgment to the upper layers
> so you can't do much even if you hit error on flush cache. IMO if
> error happens we should just check if failed sector is of our ordered
> write if not well report it and continue. It's cleaner and can give
> some (small?) performance gain.
This depends entirely on what you assume with a barrier and what the
upper layers want. My implementation guarentees that existing data sent
to drive is on platter before you issue the barrier. What is confusing
is that you cannot pass back where the error occured, that probably
needs some work.
--
Jens Axboe
next prev parent reply other threads:[~2004-03-20 16:27 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-19 15:35 [PATCH] barrier patch set Jens Axboe
2004-03-19 16:30 ` Mika Penttilä
2004-03-19 18:16 ` Jens Axboe
2004-03-19 18:44 ` Mika Penttilä
2004-03-20 9:55 ` Jens Axboe
2004-03-19 16:34 ` Jeff Garzik
2004-03-19 18:19 ` Jens Axboe
2004-03-19 23:01 ` Matthias Andree
2004-03-20 0:02 ` Bartlomiej Zolnierkiewicz
2004-03-20 1:48 ` Johannes Stezenbach
2004-03-20 2:13 ` Bartlomiej Zolnierkiewicz
2004-03-20 2:53 ` Johannes Stezenbach
2004-03-20 16:03 ` Bartlomiej Zolnierkiewicz
2004-03-20 11:36 ` Matthias Andree
2004-03-20 16:00 ` Bartlomiej Zolnierkiewicz
2004-03-20 23:36 ` Johannes Stezenbach
2004-03-21 1:33 ` Bartlomiej Zolnierkiewicz
2004-03-20 18:52 ` Helge Hafting
2004-03-22 11:15 ` Matthias Andree
2004-03-19 23:59 ` Bartlomiej Zolnierkiewicz
2004-03-20 0:14 ` Jeff Garzik
2004-03-20 0:40 ` Bartlomiej Zolnierkiewicz
2004-03-20 0:42 ` Jeff Garzik
2004-03-20 1:24 ` Bartlomiej Zolnierkiewicz
2004-03-20 9:58 ` Jens Axboe
2004-03-20 10:12 ` Jeff Garzik
2004-03-20 10:19 ` Jens Axboe
2004-03-20 10:37 ` Jeff Garzik
2004-03-20 16:30 ` Bartlomiej Zolnierkiewicz
2004-03-21 18:12 ` Jeff Garzik
2004-03-20 10:21 ` Jeff Garzik
2004-03-20 15:54 ` Bartlomiej Zolnierkiewicz
2004-03-20 0:17 ` Jeff Garzik
2004-03-20 9:53 ` Jens Axboe
2004-03-20 16:23 ` Bartlomiej Zolnierkiewicz
2004-03-20 16:27 ` Jens Axboe [this message]
2004-03-20 16:32 ` Chris Mason
2004-03-20 17:05 ` Bartlomiej Zolnierkiewicz
2004-03-20 17:10 ` Chris Mason
2004-03-20 20:16 ` Bartlomiej Zolnierkiewicz
2004-03-21 9:43 ` Jens Axboe
2004-03-30 16:04 ` Stephen C. Tweedie
2004-03-30 19:19 ` Chris Mason
2004-03-30 21:50 ` Stephen C. Tweedie
2004-03-30 22:13 ` Chris Mason
2004-03-31 14:03 ` Stephen C. Tweedie
2004-03-31 14:27 ` Chris Mason
2004-03-31 18:28 ` Ric Wheeler
2004-03-30 22:21 ` Jeff Garzik
2004-03-30 22:36 ` Chris Wedgwood
2004-03-30 22:39 ` Jeff Garzik
2004-03-30 22:41 ` Chris Wedgwood
2004-03-30 22:40 ` Bartlomiej Zolnierkiewicz
2004-03-30 22:38 ` Jeff Garzik
2004-03-31 14:08 ` Stephen C. Tweedie
2004-03-31 14:21 ` Chris Mason
2004-03-31 21:26 ` Jeff Garzik
2004-03-31 22:09 ` Chris Mason
2004-03-31 21:27 ` Jeff Garzik
2004-03-19 16:48 ` Marc-Christian Petersen
2004-03-19 18:19 ` Jens Axboe
2004-03-22 11:09 ` Andrew Morton
2004-03-22 11:10 ` Jens Axboe
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=20040320162727.GJ2933@suse.de \
--to=axboe@suse.de \
--cc=B.Zolnierkiewicz@elka.pw.edu.pl \
--cc=jgarzik@pobox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mason@suse.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