All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>
Subject: [Qemu-devel] [PATCH] virtio: Mark virtio-device as non-user-creatable
Date: Tue,  1 Aug 2017 20:01:55 -0300	[thread overview]
Message-ID: <20170801230155.21083-1-ehabkost@redhat.com> (raw)

TYPE_VIRTIO_DEVICE devices are already not usable with -device
and device_add, but they are reported as user-creatable on
"-device help" and through monitor interfaces.

Mark them as not user-creatable to avoid confusing users, and to
allow automated testing (e.g. scripts/device-crash-test) to skip
them.

Before this patch, device-crash-test will try to test
virtio-device devices with all machine-types:

  $ time ./scripts/device-crash-test -D virtio-device -v ./x86_64-softmmu/qemu-system-x86_64
  [...]
  INFO: Total: 1088 test cases
  INFO: Skipped 408 test cases

  real    0m49.775s

After this patch, the script won't try to test virtio-device
devices:

  $ time ./scripts/device-crash-test -D virtio-device -v ./x86_64-softmmu/qemu-system-x86_64
  INFO: Total: 0 test cases

  real    0m0.092s

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 hw/virtio/virtio.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 464947f..c4bdb94 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -2653,6 +2653,17 @@ static void virtio_device_class_init(ObjectClass *klass, void *data)
     dc->unrealize = virtio_device_unrealize;
     dc->bus_type = TYPE_VIRTIO_BUS;
     dc->props = virtio_properties;
+    /*
+     * Reason:
+     * - TYPE_VIRTIO_DEVICE devices are not visible to guests
+     *   unless they are created and controlled by transport-specific
+     *   devices (virtio-pci, virtio-mmio, and virtio-ccw).
+     * - A TYPE_VIRTIO_BUS bus is never available for plugging
+     *   using -device/device_add, as virtio-bus buses are
+     *   created on the fly and immediately populated by the
+     *   transport-specific devices' realize methods.
+     */
+    dc->user_creatable = false;
     vdc->start_ioeventfd = virtio_device_start_ioeventfd_impl;
     vdc->stop_ioeventfd = virtio_device_stop_ioeventfd_impl;
 
-- 
2.9.4

             reply	other threads:[~2017-08-01 23:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-01 23:01 Eduardo Habkost [this message]
2017-08-02 12:33 ` [Qemu-devel] [PATCH] virtio: Mark virtio-device as non-user-creatable Halil Pasic
2017-08-03 14:45   ` Eduardo Habkost
2017-08-03 22:11     ` Halil Pasic
2017-08-02 13:10 ` [Qemu-arm] " Eduardo Habkost
2017-08-02 13:10   ` [Qemu-devel] " Eduardo Habkost

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=20170801230155.21083-1-ehabkost@redhat.com \
    --to=ehabkost@redhat.com \
    --cc=armbru@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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.