Re: [PATCHSET block#for-2.6.36-post] block: replace barrier with sequenced flush

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Tejun Heo
Date: Tuesday, August 24, 2010 - 11:14 am

Hello,

On 08/24/2010 07:52 PM, Mike Snitzer wrote:

SBC doesn't specify the failure behavior, so it could be that retrying
flush could be safe.  But for most disk type devices, flush failure
usually indicates that the device exhausted all the options to commit
some of pending data to NV media - ie. even remapping failed for
whatever reason.  Even if retry is safe, it's more likely to simply
delay notification of failure.

In ATA, the situation is clearer, when a device actively fails a
flush, the drive reports the first failed sector it failed to commit
and the next flush will continue _after_ the sector - IOW, data is
already lost.

<speculation>
I think there's no reason mpath should be tasked with retrying flush
failure.  That's upto the SCSI EH.  If the command failed in 'safe'
transient way - ie. device busy or whatnot, SCSI EH can and does retry
the command.  There are several FAILFAST bits already and SCSI EH can
avoid retrying transport errors for mpath (maybe it already does
that?) and just need to be able to tell upper layer that the failure
was a fast one and upper layer is responsible for retrying?  Is there
any reason to pass the whole sense information upwards?
</speculation>

Anyways, flush failure is different from read/write failures.
Read/writes can always be retried cleanly.  They are stateless.  I
don't know how SCSI devices would actually behavior but it's a bit
scary to retry SYNCHRONIZE_CACHE a device failed and report success
upwards.

Thanks.

-- 
tejun
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 02/11] block: kill QUEUE_ORDERED_BY_TAG, Tejun Heo, (Thu Aug 12, 5:41 am)
[PATCH 05/11] block: misc cleanups in barrier code, Tejun Heo, (Thu Aug 12, 5:41 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Fri Aug 13, 4:48 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Vladislav Bolkhovitin, (Fri Aug 13, 5:55 am)
Re: [PATCH 02/11] block: kill QUEUE_ORDERED_BY_TAG, Vladislav Bolkhovitin, (Fri Aug 13, 5:56 am)
Re: [PATCH 02/11] block: kill QUEUE_ORDERED_BY_TAG, Christoph Hellwig, (Fri Aug 13, 6:06 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Fri Aug 13, 6:17 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Fri Aug 13, 7:38 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Sat Aug 14, 3:36 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Tue Aug 17, 6:19 am)
Re: [PATCH 08/11] block: rename barrier/ordered to flush, Christoph Hellwig, (Tue Aug 17, 6:26 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Tue Aug 17, 9:59 am)
Re: [PATCH 08/11] block: rename barrier/ordered to flush, Christoph Hellwig, (Tue Aug 17, 10:08 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Wed Aug 18, 2:46 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Vladislav Bolkhovitin, (Wed Aug 18, 12:29 pm)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Vladislav Bolkhovitin, (Wed Aug 18, 12:30 pm)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Thu Aug 19, 3:20 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Fri Aug 20, 6:22 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Mon Aug 23, 5:48 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Mon Aug 23, 7:05 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Mon Aug 23, 7:08 am)
[PATCH] block: simplify queue_next_fseq, Christoph Hellwig, (Mon Aug 23, 7:15 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Christoph Hellwig, (Mon Aug 23, 7:19 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Vladislav Bolkhovitin, (Tue Aug 24, 10:11 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Tejun Heo, (Tue Aug 24, 11:14 am)
Re: [PATCHSET block#for-2.6.36-post] block: replace barrie ..., Vladislav Bolkhovitin, (Mon Aug 30, 1:34 pm)