qemu: properties for feature compatibility
cover qemu: properties for feature compatibility
Here's what I came up with for solving the problem of differences in features in virtio between 0.12 and 0.11. This also enables migration between different backends, e.g. between host where tap supports virtio net header and where it does not: management just needs to set features appropriately.
Changes since RFC v2:
- we already have a flag to control write cache feature, let's not add another one
Changes since RFC:
- add symbolic names for properties
- only optional features can be changed
Comments? Gerd, what do you think?
Michael S. Tsirkin (2):
qdev: add bit property type
virtio: add features as qdev properties
hw/qdev-properties.c | 70 +++++++++++++++++++++++++++++++++++++++++++++----- hw/qdev.h | 9 ++++++ hw/syborg_virtio.c | 12 +++++--- hw/virtio-balloon.c | 4 +- hw/virtio-blk.c | 6 +--- hw/virtio-blk.h | 8 +++++ hw/virtio-console.c | 4 +- hw/virtio-net.c | 39 +++++++++++---------------- hw/virtio-net.h | 20 ++++++++++++++ hw/virtio-pci.c | 25 ++++++++++++----- hw/virtio.c | 2 +- hw/virtio.h | 7 ++++- 12 files changed, 152 insertions(+), 54 deletions(-)