From: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
To: Andrew Morton <akpm@osdl.org>
Cc: axboe@suse.de, edt@aei.ca, linux-kernel@vger.kernel.org
Subject: Re: ide errors in 7-rc1-mm1 and later
Date: Thu, 10 Jun 2004 01:38:17 +0200 [thread overview]
Message-ID: <200406100138.18028.bzolnier@elka.pw.edu.pl> (raw)
In-Reply-To: <20040609150658.5e5e6653.akpm@osdl.org>
On Thursday 10 of June 2004 00:06, Andrew Morton wrote:
> Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> wrote:
> > Sure, you don't need my ACK, that's obvious - you need it from
> > Linus/Andrew.
>
> But your nack would almost certainly prevent a merge, pending resolution of
> whatever the issues are.
Thanks.
> > ...
> >
> > BTW are you aware of two (minor?) corner cases of the current
> > implementation?
> >
> > - you can't have journal on a separate device
> > (pre and post flushes will only flush device storing journal not data)
>
> External journals in ext3 aren't really supported - they just happen to
> work as a plaything. I haven't tested it in several years, but I believe
> people do use it.
>
> That being said, the bug you identify is an ext3 bug. The easiest way for
The same is probably true for the current reiserfs barrier patch.
> me to fix it up within ext3 would be to issue some flush command to the
> filesystem's disk, wait for that to complete, then write the buffer_ordered
> commit block to the journal's disk. That's blkdev_issue_flush(), yes?
Yes and I think that it should work just the way you've just described.
Instead of pre+post flushes in ordered write:
flush from fs to sync disk + ordered commit (write+flush)
or even:
flush from fs to sync disk + commit
The latter is a bit less secure but we can also have 'unfortunate' power
failures for ordered write: while writing or between write and actual
flush (although 'race window' is smaller). Anyway ordering is preserved
(commit won't hit platters before the real data!) and it is a _lot_ simpler
(+ a bit faster). This solution is 'good enough' for me but the former
one is also okay (unlike 'pre/post flushes private to the IDE driver')
but requires solving 'we need partial completions for IDE' problem first.
Does journal has checksum or some other protection against failure during
writing journal to a disk? If not than it still can be screwed even with
ordered writes if we are unfortunate enough. ;-)
> > - if you more than > 1 filesystem on the disk (quite likely scenario) it
> > can happen that barrier (flush) will fail for sector for file from the
> > other fs and later barrier for this other fs will succeed
>
> I don't understand this one.
Flush command can fail for sector which came into disk's write cache
from some write request for some other fs on the same disk i.e.
write requests for fs 'a' (sector 'x' stays in write cache)
write requests for fs 'b'
commit log for fs 'b' -> barrier for fs 'b'
barrier fails because of sector 'x'
commit log for fs 'a' -> barrier for fs 'a'
barrier succeeds
Such scenario is highly unlikely (disks do bad sector re-allocation
on write) but not impossible (pool of sectors for remapping is unlimited).
That's why I think it is a minor issue (but still worth to know about it).
This is just to make it clear that write barriers can help for power failures
and hard resets or disks which don't expire their caches (are there any?) but
can't help once things go wrong with a disk (and actually can make it worse).
next prev parent reply other threads:[~2004-06-09 23:34 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-27 20:24 [2.6.7-rc1-mm1] cant mount reiserfs using -o barrier=flush Günther Persoons
2004-05-27 23:28 ` Ed Tomlinson
2004-05-28 11:54 ` Gunther Persoons
2004-05-28 12:18 ` Jens Axboe
2004-05-28 21:39 ` Ed Tomlinson
2004-05-29 8:30 ` Jens Axboe
2004-06-04 2:07 ` ide errors in 7-rc1-mm1 and later Ed Tomlinson
2004-06-04 2:31 ` Andrew Morton
2004-06-04 9:42 ` Jens Axboe
2004-06-04 11:22 ` Ed Tomlinson
2004-06-04 11:32 ` Jens Axboe
2004-06-04 11:45 ` Jens Axboe
2004-06-04 11:57 ` Bartlomiej Zolnierkiewicz
2004-06-04 12:01 ` Jens Axboe
2004-06-04 12:38 ` Bartlomiej Zolnierkiewicz
2004-06-04 12:47 ` Jens Axboe
2004-06-04 13:34 ` Bartlomiej Zolnierkiewicz
2004-06-04 15:23 ` Jens Axboe
2004-06-04 16:14 ` Bartlomiej Zolnierkiewicz
2004-06-05 9:18 ` Jens Axboe
2004-06-09 21:52 ` Bartlomiej Zolnierkiewicz
2004-06-09 22:06 ` Andrew Morton
2004-06-09 23:38 ` Bartlomiej Zolnierkiewicz [this message]
2004-06-09 23:50 ` Andrew Morton
2004-06-10 0:20 ` Bartlomiej Zolnierkiewicz
2004-06-10 0:37 ` Andrew Morton
2004-06-10 1:02 ` Bartlomiej Zolnierkiewicz
2004-06-10 0:28 ` Chris Mason
2004-06-10 0:38 ` Andrew Morton
2004-06-10 0:45 ` Bartlomiej Zolnierkiewicz
2004-06-10 15:14 ` Chris Mason
2004-06-10 15:15 ` Jens Axboe
2004-06-10 1:05 ` Bartlomiej Zolnierkiewicz
2004-06-10 6:27 ` Jens Axboe
2004-06-10 6:26 ` Jens Axboe
2004-06-04 17:29 ` Jeff Garzik
2004-06-05 9:24 ` Jens Axboe
2004-06-06 16:18 ` Eric D. Mudama
2004-06-06 20:46 ` Jens Axboe
2004-06-10 0:38 ` Bartlomiej Zolnierkiewicz
2004-06-10 6:11 ` Jens Axboe
2004-06-10 16:41 ` Eric D. Mudama
2004-06-10 17:50 ` flush cache range proposal (was Re: ide errors in 7-rc1-mm1 and later) Jeff Garzik
2004-06-10 18:02 ` Jeff Garzik
2004-06-10 20:33 ` Eric D. Mudama
2004-06-11 16:22 ` Jeff Garzik
2004-06-11 7:55 ` Jens Axboe
2004-06-11 16:17 ` Eric D. Mudama
2004-06-11 16:31 ` Jeff Garzik
2004-06-11 16:52 ` Eric D. Mudama
2004-06-11 16:58 ` Jens Axboe
2004-06-11 16:54 ` Jens Axboe
2004-06-11 16:50 ` Jens Axboe
2004-06-11 16:24 ` Jeff Garzik
2004-06-11 6:10 ` Stuart Young
2004-06-26 8:31 ` ide errors in 7-rc1-mm1 and later Andre Hedrick
2004-06-26 8:58 ` Andre Hedrick
2004-06-28 18:18 ` Eric D. Mudama
2004-07-02 8:29 ` Jens Axboe
2004-07-07 5:40 ` Jeff Garzik
2004-06-04 11:48 ` Bartlomiej Zolnierkiewicz
2004-06-09 23:44 ` Ed Tomlinson
2004-06-09 23:52 ` Andrew Morton
2004-06-10 0:17 ` Ed Tomlinson
2004-06-10 6:29 ` Jens Axboe
2004-06-14 21:42 ` Ed Tomlinson
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=200406100138.18028.bzolnier@elka.pw.edu.pl \
--to=b.zolnierkiewicz@elka.pw.edu.pl \
--cc=akpm@osdl.org \
--cc=axboe@suse.de \
--cc=edt@aei.ca \
--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
all inboxes | Powered by JetHome®