From: Christian Borntraeger <borntraeger@de.ibm.com>
To: "Michael S. Tsirkin" <mst@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Jason Wang <jasowang@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH RFC] virtio: set any_layout in virtio core
Date: Thu, 23 Jul 2015 12:15:22 +0200 [thread overview]
Message-ID: <55B0BEBA.2060508@de.ibm.com> (raw)
In-Reply-To: <1437557634-13210-1-git-send-email-mst@redhat.com>
Am 22.07.2015 um 11:36 schrieb Michael S. Tsirkin:
> Virtio 1 requires this, and all devices are clean by now,
> so let's do it!
>
> Exceptions:
> - virtio-blk
> - compat machine types
Is this targetted for 2.4 or 2.5? Pushing all the 1.0 stuff in 2.4 while
in hard freeze seems a bit dangerous as long as there are discussions going on.
(I just started looking into the scsi feature mail thread - no opinion yet)
Christian
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>
> Untested - consider this pseudo-code - it just seems easier to write it
> in C than try to explain it.
>
> include/hw/compat.h | 22 +++++++++++++++++++++-
> include/hw/virtio/virtio.h | 4 +++-
> hw/block/virtio-blk.c | 1 +
> hw/net/virtio-net.c | 2 --
> hw/scsi/virtio-scsi.c | 2 --
> 5 files changed, 25 insertions(+), 6 deletions(-)
>
> diff --git a/include/hw/compat.h b/include/hw/compat.h
> index 4a43466..94c8097 100644
> --- a/include/hw/compat.h
> +++ b/include/hw/compat.h
> @@ -2,7 +2,27 @@
> #define HW_COMPAT_H
>
> #define HW_COMPAT_2_3 \
> - /* empty */
> + {\
> + .driver = "virtio-blk-pci",\
> + .property = "any_layout",\
> + .value = "off",\
> + },{\
> + .driver = "virtio-balloon-pci",\
> + .property = "any_layout",\
> + .value = "off",\
> + },{\
> + .driver = "virtio-serial-pci",\
> + .property = "any_layout",\
> + .value = "off",\
> + },{\
> + .driver = "virtio-9p-pci",\
> + .property = "any_layout",\
> + .value = "off",\
> + },{\
> + .driver = "virtio-rng-pci",\
> + .property = "any_layout",\
> + .value = "off",\
> + },
>
> #define HW_COMPAT_2_2 \
> /* empty */
> diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
> index 473fb75..fbb3c06 100644
> --- a/include/hw/virtio/virtio.h
> +++ b/include/hw/virtio/virtio.h
> @@ -214,7 +214,9 @@ typedef struct VirtIORNGConf VirtIORNGConf;
> DEFINE_PROP_BIT64("event_idx", _state, _field, \
> VIRTIO_RING_F_EVENT_IDX, true), \
> DEFINE_PROP_BIT64("notify_on_empty", _state, _field, \
> - VIRTIO_F_NOTIFY_ON_EMPTY, true)
> + VIRTIO_F_NOTIFY_ON_EMPTY, true) \
> + DEFINE_PROP_BIT64("any_layout", _state, _field, \
> + VIRTIO_F_ANY_LAYOUT, true)
>
> hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n);
> hwaddr virtio_queue_get_avail_addr(VirtIODevice *vdev, int n);
> diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
> index 6aefda4..015b9b5 100644
> --- a/hw/block/virtio-blk.c
> +++ b/hw/block/virtio-blk.c
> @@ -731,6 +731,7 @@ static uint64_t virtio_blk_get_features(VirtIODevice *vdev, uint64_t features)
> virtio_add_feature(&features, VIRTIO_BLK_F_TOPOLOGY);
> virtio_add_feature(&features, VIRTIO_BLK_F_BLK_SIZE);
> virtio_add_feature(&features, VIRTIO_BLK_F_SCSI);
> + virtio_clear_feature(&features, VIRTIO_F_ANY_LAYOUT);
>
> if (s->conf.config_wce) {
> virtio_add_feature(&features, VIRTIO_BLK_F_CONFIG_WCE);
> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
> index 304d3dd..e203058 100644
> --- a/hw/net/virtio-net.c
> +++ b/hw/net/virtio-net.c
> @@ -1777,8 +1777,6 @@ static void virtio_net_instance_init(Object *obj)
> }
>
> static Property virtio_net_properties[] = {
> - DEFINE_PROP_BIT("any_layout", VirtIONet, host_features,
> - VIRTIO_F_ANY_LAYOUT, true),
> DEFINE_PROP_BIT("csum", VirtIONet, host_features, VIRTIO_NET_F_CSUM, true),
> DEFINE_PROP_BIT("guest_csum", VirtIONet, host_features,
> VIRTIO_NET_F_GUEST_CSUM, true),
> diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
> index f7d3c7c..d17698d 100644
> --- a/hw/scsi/virtio-scsi.c
> +++ b/hw/scsi/virtio-scsi.c
> @@ -953,8 +953,6 @@ static Property virtio_scsi_properties[] = {
> 0xFFFF),
> DEFINE_PROP_UINT32("cmd_per_lun", VirtIOSCSI, parent_obj.conf.cmd_per_lun,
> 128),
> - DEFINE_PROP_BIT("any_layout", VirtIOSCSI, host_features,
> - VIRTIO_F_ANY_LAYOUT, true),
> DEFINE_PROP_BIT("hotplug", VirtIOSCSI, host_features,
> VIRTIO_SCSI_F_HOTPLUG, true),
> DEFINE_PROP_BIT("param_change", VirtIOSCSI, host_features,
>
next prev parent reply other threads:[~2015-07-23 10:15 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-22 9:36 [Qemu-devel] [PATCH RFC] virtio: set any_layout in virtio core Michael S. Tsirkin
2015-07-23 8:14 ` Jason Wang
2015-07-23 14:39 ` Michael S. Tsirkin
2015-07-23 10:15 ` Christian Borntraeger [this message]
2015-07-23 14:37 ` Michael S. Tsirkin
2015-07-23 10:43 ` Cornelia Huck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55B0BEBA.2060508@de.ibm.com \
--to=borntraeger@de.ibm.com \
--cc=jasowang@redhat.com \
--cc=kwolf@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.