All of lore.kernel.org
 help / color / mirror / Atom feed
* write barrier in RAID5
@ 2015-04-01 18:24 Eric Mei
  2015-04-07  1:25 ` NeilBrown
  0 siblings, 1 reply; 2+ messages in thread
From: Eric Mei @ 2015-04-01 18:24 UTC (permalink / raw)
  To: linux-raid

I can see how FUA is handled, but REQ_FLUSH seems problematic. My 
understanding of REQ_FLUSH semantics: all requests before the flush 
request must *complete* before the flush request complete. For IO remap 
layer like MD, we need to guarantee all previous requests are 
*submitted* to component devices before submitting the flush request. Is 
that correct?

If so why I don't see the code which make sure the pending write 
requests in stripe cache are processed & submitted before 
submit_flushes() get called? Thanks

Eric

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: write barrier in RAID5
  2015-04-01 18:24 write barrier in RAID5 Eric Mei
@ 2015-04-07  1:25 ` NeilBrown
  0 siblings, 0 replies; 2+ messages in thread
From: NeilBrown @ 2015-04-07  1:25 UTC (permalink / raw)
  To: Eric Mei; +Cc: linux-raid

[-- Attachment #1: Type: text/plain, Size: 1236 bytes --]

On Wed, 01 Apr 2015 12:24:38 -0600 Eric Mei <meijia@gmail.com> wrote:

> I can see how FUA is handled, but REQ_FLUSH seems problematic. My 
> understanding of REQ_FLUSH semantics: all requests before the flush 
> request must *complete* before the flush request complete. For IO remap 
> layer like MD, we need to guarantee all previous requests are 
> *submitted* to component devices before submitting the flush request. Is 
> that correct?

No.

See Documentation/block/writeback_cache_control.txt

Only "previously completed" requests are affect by REQ_FLUSH.

So any code using REQ_FLUSH must first wait for previous requests to
complete, and then submit REQ_FLUSH.  The REQ_FLUSH will not return until the
data written by those requests is actually in stable storage, rather than
write-behind cache.

NeilBrown


> 
> If so why I don't see the code which make sure the pending write 
> requests in stripe cache are processed & submitted before 
> submit_flushes() get called? Thanks
> 
> Eric
> --
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-04-07  1:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-01 18:24 write barrier in RAID5 Eric Mei
2015-04-07  1:25 ` NeilBrown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.