lkml.org 
[lkml]   [2012]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH V5 4/4] virtio-blk: Add REQ_FLUSH and REQ_FUA support to bio path
    On 08/02/2012 02:27 PM, Christoph Hellwig wrote:
    > On Thu, Aug 02, 2012 at 02:25:56PM +0800, Asias He wrote:
    >> We need to support both REQ_FLUSH and REQ_FUA for bio based path since
    >> it does not get the sequencing of REQ_FUA into REQ_FLUSH that request
    >> based drivers can request.
    >>
    >> REQ_FLUSH is emulated by:
    >> 1. Send VIRTIO_BLK_T_FLUSH to device
    >> 2. Wait until the flush is finished
    >
    > There is no need to wait for the flush to finish if the REQ_FLUSH
    > request has no data payload.
    >
    > Even if it has a payload waiting is highly suboptimal and it should
    > use a non-blocking sequencing like it is done in the request layer.

    So, for REQ_FLUSH, what we need is that send out the VIRTIO_BLK_T_FLUSH
    and not to wait.

    >>
    >> REQ_FUA is emulated by:
    >> 1. Send the actual write
    >> 2. Wait until the actual write is finished
    >> 3. Send VIRTIO_BLK_T_FLUSH to device
    >> 4. Wait until the flush is finished
    >> 5. Signal the end of the write to upper layer
    >
    > The same comment about not blocking applies here as well.

    We still need to wait until the actual write is finished here?
    Like,

    REQ_FUA is emulated by:
    1. Send the actual write
    2. Wait until the actual write is finished
    3. Send VIRTIO_BLK_T_FLUSH to device
    4. Signal the end of the write to upper layer
    --
    Asias


    \
     
     \ /
      Last update: 2012-08-02 09:21    [W:0.040 / U:30.608 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site