Re: [PATCH] virtio-spec: document block CMD and FLUSH
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2010-05-04 18:58:37
On Tue, May 04, 2010 at 09:56:18PM +0300, Michael S. Tsirkin wrote:
On Tue, May 04, 2010 at 08:54:59PM +0200, Christoph Hellwig wrote:quoted
On Fri, Feb 19, 2010 at 12:22:20AM +0200, Michael S. Tsirkin wrote:quoted
I took a stub at documenting CMD and FLUSH request types in virtio block. Christoph, could you look over this please? I note that the interface seems full of warts to me, this might be a first step to cleaning them.The whole virtio-blk interface is full of warts. It has been extended rather ad-hoc, so that is rather expected.quoted
One issue I struggled with especially is how type field mixes bits and non-bit values. I ended up simply defining all legal values, so that we have CMD = 2, CMD_OUT = 3 and so on.It's basically a complete mess without much logic behind it.quoted
+\change_unchanged +the high bit +\change_inserted 0 1266497301 + (VIRTIO_BLK_T_BARRIER) +\change_unchanged + indicates that this request acts as a barrier and that all preceeding requests + must be complete before this one, and all following requests must not be + started until this is complete. + +\change_inserted 0 1266504385 + Note that a barrier does not flush caches in the underlying backend device + in host, and thus does not serve as data consistency guarantee. + Driver must use FLUSH request to flush the host cache. +\change_unchangedI'm not sure it's even worth documenting it. I can't see any way to actually implement safe behaviour with the VIRTIO_BLK_T_BARRIER-style barriers.lguest seems to still use this.
Sorry, it doesn't. No idea why I thought it does.
I guess if you have a reliable host, VIRTIO_BLK_T_BARRIER is enough?quoted
Btw, did I mention that .lyx is a a really horrible format to review diffs for? Plain latex would be a lot better..