All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: Cornelia Huck <cornelia.huck@de.ibm.com>,
	KVM <kvm@vger.kernel.org>,
	linux-s390 <linux-s390@vger.kernel.org>,
	qemu-devel <qemu-devel@nongnu.org>
Cc: Carsten Otte <cotte@de.ibm.com>,
	Anthony Liguori <aliguori@us.ibm.com>,
	Sebastian Ott <sebott@linux.vnet.ibm.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Alexander Graf <agraf@suse.de>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Avi Kivity <avi@redhat.com>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>
Subject: Re: [PATCH 3/4] s390/kvm: Add a channel I/O based virtio transport driver.
Date: Wed, 08 Aug 2012 13:52:57 +0930	[thread overview]
Message-ID: <87pq72t3ku.fsf@rustcorp.com.au> (raw)
In-Reply-To: <1344351168-2568-4-git-send-email-cornelia.huck@de.ibm.com>

On Tue,  7 Aug 2012 16:52:47 +0200, Cornelia Huck <cornelia.huck@de.ibm.com> wrote:
> Add a driver for kvm guests that matches virtual ccw devices provided
> by the host as virtio bridge devices.

Hi Cornelia,

        OK, this is a good opportunity to fix some limitations, just as
we did for virtio_mmio (drivers/virtio/virtio_mmio.c).

1) Please don't limit yourself to 32 feature bits!  If you look at how
   virtio_mmio does it, they use a selector to index into a
   theoretically-infinite array of feature bits:

 * 0x010  R  HostFeatures     Features supported by the host
 * 0x014  W  HostFeaturesSel  Set of host features to access via HostFeatures
 *
 * 0x020  W  GuestFeatures    Features activated by the guest
 * 0x024  W  GuestFeaturesSel Set of activated features to set via GuestFeatures

2) Please also allow the guest to set the alignment for virtio ring
   layout (it controls the spacing between the rings), eg:

 * 0x03c  W  QueueAlign       Used Ring alignment for the current queue

3) Finally, make sure the guest can set the size of the queue, in case
   it can't allocate the size the host suggests, eg:

 * 0x034  R  QueueNumMax      Maximum size of the currently selected queue
 * 0x038  W  QueueNum         Queue size for the currently selected queue

   This means the host can suggest huge queues, knowing the guest won't
   simply fail if it does so.

Note that we're also speculating a move to a new vring format, which
will probably be little-endian.  But you probably want a completely new
ccw code for that anyway.

Cheers,
Rusty.

WARNING: multiple messages have this Message-ID (diff)
From: Rusty Russell <rusty@rustcorp.com.au>
To: Cornelia Huck <cornelia.huck@de.ibm.com>,
	KVM <kvm@vger.kernel.org>,
	linux-s390 <linux-s390@vger.kernel.org>,
	qemu-devel <qemu-devel@nongnu.org>
Cc: Carsten Otte <cotte@de.ibm.com>,
	Anthony Liguori <aliguori@us.ibm.com>,
	Sebastian Ott <sebott@linux.vnet.ibm.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Alexander Graf <agraf@suse.de>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Avi Kivity <avi@redhat.com>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>
Subject: Re: [Qemu-devel] [PATCH 3/4] s390/kvm: Add a channel I/O based virtio transport driver.
Date: Wed, 08 Aug 2012 13:52:57 +0930	[thread overview]
Message-ID: <87pq72t3ku.fsf@rustcorp.com.au> (raw)
In-Reply-To: <1344351168-2568-4-git-send-email-cornelia.huck@de.ibm.com>

On Tue,  7 Aug 2012 16:52:47 +0200, Cornelia Huck <cornelia.huck@de.ibm.com> wrote:
> Add a driver for kvm guests that matches virtual ccw devices provided
> by the host as virtio bridge devices.

Hi Cornelia,

        OK, this is a good opportunity to fix some limitations, just as
we did for virtio_mmio (drivers/virtio/virtio_mmio.c).

1) Please don't limit yourself to 32 feature bits!  If you look at how
   virtio_mmio does it, they use a selector to index into a
   theoretically-infinite array of feature bits:

 * 0x010  R  HostFeatures     Features supported by the host
 * 0x014  W  HostFeaturesSel  Set of host features to access via HostFeatures
 *
 * 0x020  W  GuestFeatures    Features activated by the guest
 * 0x024  W  GuestFeaturesSel Set of activated features to set via GuestFeatures

2) Please also allow the guest to set the alignment for virtio ring
   layout (it controls the spacing between the rings), eg:

 * 0x03c  W  QueueAlign       Used Ring alignment for the current queue

3) Finally, make sure the guest can set the size of the queue, in case
   it can't allocate the size the host suggests, eg:

 * 0x034  R  QueueNumMax      Maximum size of the currently selected queue
 * 0x038  W  QueueNum         Queue size for the currently selected queue

   This means the host can suggest huge queues, knowing the guest won't
   simply fail if it does so.

Note that we're also speculating a move to a new vring format, which
will probably be little-endian.  But you probably want a completely new
ccw code for that anyway.

Cheers,
Rusty.

  reply	other threads:[~2012-08-08  4:22 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-07 14:52 [RFC PATCH 0/4] s390: virtio-ccw guest kernel support Cornelia Huck
2012-08-07 14:52 ` [Qemu-devel] " Cornelia Huck
2012-08-07 14:52 ` [PATCH 1/4] s390/kvm: Handle hosts not supporting s390-virtio Cornelia Huck
2012-08-07 14:52   ` [Qemu-devel] " Cornelia Huck
2012-08-09 10:03   ` Avi Kivity
2012-08-09 10:03     ` [Qemu-devel] " Avi Kivity
2012-08-09 10:41     ` Cornelia Huck
2012-08-09 10:41       ` [Qemu-devel] " Cornelia Huck
2012-08-10  8:42       ` Heiko Carstens
2012-08-10  8:42         ` [Qemu-devel] " Heiko Carstens
2012-08-10 11:03         ` Cornelia Huck
2012-08-10 11:03           ` [Qemu-devel] " Cornelia Huck
2012-08-09 23:09   ` Alexander Graf
2012-08-09 23:09     ` [Qemu-devel] " Alexander Graf
2012-08-10  7:45     ` Cornelia Huck
2012-08-10  7:45       ` [Qemu-devel] " Cornelia Huck
2012-08-07 14:52 ` [PATCH 2/4] s390: Add a mechanism to get the subchannel id Cornelia Huck
2012-08-07 14:52   ` [Qemu-devel] " Cornelia Huck
2012-08-13 17:16   ` Sebastian Ott
2012-08-13 17:16     ` [Qemu-devel] " Sebastian Ott
2012-08-14  8:52   ` Sebastian Ott
2012-08-14  8:52     ` [Qemu-devel] " Sebastian Ott
2012-08-14 10:38     ` Cornelia Huck
2012-08-14 10:38       ` [Qemu-devel] " Cornelia Huck
2012-08-14 10:53       ` Sebastian Ott
2012-08-14 10:53         ` [Qemu-devel] " Sebastian Ott
2012-08-07 14:52 ` [PATCH 3/4] s390/kvm: Add a channel I/O based virtio transport driver Cornelia Huck
2012-08-07 14:52   ` [Qemu-devel] " Cornelia Huck
2012-08-08  4:22   ` Rusty Russell [this message]
2012-08-08  4:22     ` Rusty Russell
2012-08-13  8:56     ` Cornelia Huck
2012-08-13  8:56       ` [Qemu-devel] " Cornelia Huck
2012-08-14  0:10       ` Rusty Russell
2012-08-14  0:10         ` [Qemu-devel] " Rusty Russell
2012-08-14 11:03         ` Cornelia Huck
2012-08-14 11:03           ` [Qemu-devel] " Cornelia Huck
2012-08-15  3:15           ` Rusty Russell
2012-08-15  3:15             ` [Qemu-devel] " Rusty Russell
2012-08-14 19:56   ` Anthony Liguori
2012-08-14 19:56     ` [Qemu-devel] " Anthony Liguori
2012-08-15  7:28     ` Rusty Russell
2012-08-15  7:28       ` [Qemu-devel] " Rusty Russell
2012-08-15  7:48       ` Christian Borntraeger
2012-08-15  7:48         ` [Qemu-devel] " Christian Borntraeger
2012-08-21  5:35         ` Rusty Russell
2012-08-21  5:35           ` [Qemu-devel] " Rusty Russell
2012-08-07 14:52 ` [PATCH 4/4] s390/kvm: Split out early console code Cornelia Huck
2012-08-07 14:52   ` [Qemu-devel] " 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=87pq72t3ku.fsf@rustcorp.com.au \
    --to=rusty@rustcorp.com.au \
    --cc=agraf@suse.de \
    --cc=aliguori@us.ibm.com \
    --cc=avi@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=cotte@de.ibm.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=schwidefsky@de.ibm.com \
    --cc=sebott@linux.vnet.ibm.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.