Messages in this thread | | | Date | Tue, 07 Aug 2012 16:50:45 +0800 | From | Asias He <> | Subject | Re: [PATCH V5 4/4] virtio-blk: Add REQ_FLUSH and REQ_FUA support to bio path |
| |
On 08/06/2012 11:17 PM, Christoph Hellwig wrote: > On Thu, Aug 02, 2012 at 02:43:04PM +0800, Asias He wrote: >>> 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. > > If it's REQ_FLUSH without data a VIRTIO_BLK_T_FLUSH should be sent out only, > if it's a REQ_FLUSH that has data a VIRTIO_BLK_T_FLUSH should be sent out, > but instead of waiting for it to finish the I/O completion handler should > then submit the actual write. > >> 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 > > Remove step 2 and run step 3 from the I/O completion handler. >
Thanks for the explanation. V6 is in flight.
-- Asias
| |