From: James Bottomley <James.Bottomley@SteelEye.com>
To: Chris Mason <mason@suse.com>
Cc: James Bottomley <James.Bottomley@SteelEye.com>,
Jens Axboe <axboe@suse.de>,
linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org
Subject: Re: [PATCH] queue barrier support
Date: Fri, 15 Feb 2002 12:09:17 -0500 [thread overview]
Message-ID: <200202151709.g1FH9H202142@localhost.localdomain> (raw)
In-Reply-To: Message from Chris Mason <mason@suse.com> of "Fri, 15 Feb 2002 11:28:35 EST." <3998280000.1013790514@tiny>
mason@suse.com said:
> Ok, I'll try to narrow the barrier usage a bit, I'm waiting on the
> barrier write once it is sent, so I'm not worried about anything done
> after the ordered tag.
> write X log blocks (simple tag) write 1 commit block (ordered tag)
> wait on all of them.
> All I care about is knowing that all of the log blocks hit the disk
> before the commit. So, if one of the log blocks aborts, I want it to
> abort the commit too. Is this a little easier to implement?
Actually, I'm afraid not. The FS has the notion of a transaction to help it
with this. All the SCSI driver sees is a list of IOs with some requests for
ordered tags. If we go into error recovery and have to abort a tag, how do we
know which of the outstanding ordered tags is actually the commit block for
this transaction? (Remember also that a FS sits on a partition, not a physical
SCSI device, so even if you single thread your commits per FS, there could
still be multiple FSs on the same physical device).
That's why I think it's safer to abandon the abort entirely. If our first
line of error recovery is device reset, we know we've just cleared the entire
outstanding tag queue and we can resend all the tags in FIFO order which means
that we still don't need a concept of "transaction" at the SCSI level (which
is a good thing, I think), all we need to know is the order in which the tags
came to us.
Even if some tags were committed but not acknowledged at reset time, it's
still safe to resend them in the correct ordered sequence because of
transaction idempotence of block writes.
James
next prev parent reply other threads:[~2002-02-15 17:09 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-13 18:26 James Bottomley
2002-02-15 9:02 ` Jens Axboe
2002-02-15 15:15 ` James Bottomley
2002-02-15 16:28 ` Chris Mason
2002-02-15 16:51 ` James Bottomley
2002-02-15 17:17 ` Chris Mason
2002-02-15 17:48 ` James Bottomley
2002-02-15 22:30 ` Matthias Andree
2002-02-15 17:09 ` James Bottomley [this message]
2002-02-15 16:43 ` Mike Anderson
2002-02-15 13:41 ` Chris Mason
2002-02-16 10:20 ` Daniel Phillips
2002-02-16 15:02 ` James Bottomley
2002-02-25 20:55 ` 929-Emulex, ABTS Command Anamoly! Cindy Sweet
2002-02-25 21:02 ` arjan
-- strict thread matches above, loose matches on Subject: below --
2002-02-13 12:51 [PATCH] queue barrier support Jens Axboe
2002-02-13 13:09 ` Martin Dalecki
2002-02-13 13:13 ` Jens Axboe
2002-02-13 14:36 ` Martin Dalecki
2002-02-13 14:41 ` Jens Axboe
2002-02-13 14:51 ` Daniel Phillips
2002-02-13 15:18 ` Jens Axboe
2002-02-13 17:47 ` Andreas Dilger
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=200202151709.g1FH9H202142@localhost.localdomain \
--to=james.bottomley@steeleye.com \
--cc=axboe@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@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
all inboxes | Powered by JetHome®