mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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



  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®