Hi Amos, Dmitry, Paolo,
You might have heard that we've started an OASIS Technical
Committee to produce a virtio 1.0 spec. We based it on the then-current
0.9.5 spec, but you've all contributed since then.
To keep the IP issue clean, I'd really like you to join the
virtio-comment mailing list, and mail your changes there. Just sending
me the git diff is fine, I'll translate it to text.
https://www.oasis-open.org/committees/comments/index.php?wg_abbrev=virtio
Of course, you're welcome to join the TC as well if you want, or lurk on
the mailing list and follow the fun :) We'll also be sending out a
proper draft to all the usual mailing lists once we've got something.
Below are the git commits I'm talking about...
Sorry for the hassle,
Rusty.
commit be243ee8e26c10c69e2013fd30246e64271a2da5
Author: Paolo Bonzini <>
Date: Wed Jul 4 14:51:02 2012 +0930
Current QEMU and Linux drivers can export queue parameters via the
virtio-blk configuration space. Document this, since the next patch
will have to add another configuration field after these.
Signed-off-by: Paolo Bonzini <>
Signed-off-by: Rusty Russell <>
commit 46430e822f4ed4c15c910864de3b95a710cfd65b
Author: Paolo Bonzini <>
Date: Tue Jul 3 15:16:52 2012 +0200
virtio-blk spec: writeback cache enable improvements
This patch introduces two improvements to writeback cache handling
in the virtio-blk spec.
1) The VIRTIO_BLK_F_FLUSH feature is renamed to VIRTIO_BLK_F_WCE, and
QEMU's behavior is documented explicitly as part of the spec: the host
negotiates the feature only if its cache is writeback. The obvious dual
requirement is imposed on the guest: it should negotiate the feature
only if it is able to send flushes. And in order to protect against
data loss, the spec now mandates that the host operates in writethrough
mode if the guest does not negotiate VIRTIO_BLK_F_WCE (this behavior
was already _allowed_ by the spec so far). This can change with every
reset of course; typically the BIOS will run as writethrough, while the
"main" OS will run in writeback mode. This is a backwards-compatible
refinement geared towards old or limited guests, so there is no need
for a new feature bit.
2) a second feature is added, VIRTIO_BLK_F_CONFIG_WCE, that provides
the same information in the configuration. This will enable the driver
to modify the write-cache setting at runtime (via sysfs for Linux, via
MODE SELECT for Windows).
Patches for QEMU and Linux will come soonish.
Signed-off-by: Paolo Bonzini <>
Signed-off-by: Rusty Russell <>
commit 96b9a4d3656db6248b057a9d589fef5d9a3aa7d0
Author: Paolo Bonzini <>
Date: Wed Jul 4 16:02:36 2012 +0200
virtio-blk spec: document topology fields
This completes the changes from yesterday.
Signed-off-by: Paolo Bonzini <>
commit a6f08364ee605ebcaa2a16e6b294cb328ac18be0
Author: Paolo Bonzini <>
Date: Mon Jul 16 16:24:36 2012 +0200
virtio-scsi spec: unify event structs
All currently defined event structs have the same fields. Simplify the
driver by enforcing this also for future structs.
Signed-off-by: Paolo Bonzini <>
commit 00871fd5ab31242d756a2d277dbe33854d6c2d0f
Author: Paolo Bonzini <>
Date: Mon Jul 16 16:24:37 2012 +0200
virtio-scsi spec: add configuration change event
This adds an event for changes to LUN parameters, for example capacity. These
are reported in virtio-blk via configuration changes, and we want a similar
functionality in virtio-scsi too.
There is no list of supported parameter changes, instead we just refer to
the list of sense codes in the SCSI specification.
This event will usually be serviced in one of three ways: 1) call an OS
service to revalidate the disk, either always or only for some specific
sense codes; 2) somehow pass the sense directly to the upper-level driver;
3) inject a TEST UNIT READY command into the upper-level device, so that
the OS will see the unit attention code and react. Of course a mix of
the three is also possible, depending on how the driver writer prefers
to have his layering violations served.
Signed-off-by: Paolo Bonzini <>
commit 3c600996f641614d3720c94dd52155aaaba670fa
Author: Amos Kong <>
Date: Wed Jan 9 15:55:23 2013 +0800
virtio-spec: fix two typos
VIRTIO_NET_F_VTRL_VQ -> VIRTIO_NET_F_CTRL_VQ
VIRTIO_NET_CTRL_MQ is defined to 4 in kernel code
Signed-off-by: Amos Kong <>
Reviewed-by: Stefan Hajnoczi <>
Signed-off-by: Rusty Russell <>
commit f058954d131e3dc73058778ad23b241a235ae8e1
Author: Amos Kong <>
Date: Fri Jan 18 19:05:41 2013 +0800
virtio-spec: set mac address by a new vq command
Virtio-net driver currently programs MAC address byte by byte,
this means that we have an intermediate step where mac is wrong.
This patch introduced a new control command to set MAC address
in one time, and added a new feature flag VIRTIO_NET_F_MAC_ADDR
for this feature.
"mac" field will be set to read-only when VIRTIO_NET_F_CTRL_MAC_ADDR
is acked.
Signed-off-by: Amos Kong <>
Signed-off-by: Rusty Russell <>
commit 721861222802d0ebc48564d727a3684f7b21cadd
Author: Dmitry Fleytman <>
Date: Thu Apr 4 10:55:18 2013 +0300
virtio-spec: dynamic network offloads configuration
Virtio-net driver currently negotiates network offloads
on startup via features mechanism and have no ability to
disable and re-enable offloads later.
This patch introduced a new control command that allows
to configure device network offloads state dynamically.
The patch also introduces a new feature flag
VIRTIO_NET_F_CTRL_GUEST_OFFLOADS.
Signed-off-by: Dmitry Fleytman <>
Signed-off-by: Rusty Russell <>