* [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci
@ 2018-12-13 21:00 Juan Quintela
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 01/16] virtio: split vhost vsock bits " Juan Quintela
` (17 more replies)
0 siblings, 18 replies; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Hi
v3:
- rebase to master
- only compile them if CONFIG_PCI is set (thomas)
Please review.
Later, Juan.
V2:
- Rebase on top of master
Please review.
Later, Juan.
[v1]
>From previous verision (in the middle of make check tests):
- split also the bits of virtio-pci.h (mst suggestion)
- add gpu, crypt and gpg bits
- more cleanups
- fix all the copyrights (the ones not changed have been there
foverever)
- be consistent with naming, vhost-* or virtio-*
Please review, Juan.
Juan Quintela (16):
virtio: split vhost vsock bits from virtio-pci
virtio: split virtio input host bits from virtio-pci
virtio: split virtio input bits from virtio-pci
virtio: split virtio rng bits from virtio-pci
virtio: split virtio balloon bits from virtio-pci
virtio: split virtio 9p bits from virtio-pci
virtio: split vhost user blk bits from virtio-pci
virtio: split vhost user scsi bits from virtio-pci
virtio: split vhost scsi bits from virtio-pci
virtio: split virtio scsi bits from virtio-pci
virtio: split virtio blk bits rom virtio-pci
virtio: split virtio net bits rom virtio-pci
virtio: split virtio serial bits rom virtio-pci
virtio: split virtio gpu bits rom virtio-pci.h
virtio: split virtio crypto bits rom virtio-pci.h
virtio: virtio 9p really requires CONFIG_VIRTFS to work
default-configs/virtio.mak | 3 +-
hw/display/virtio-gpu-pci.c | 14 +
hw/display/virtio-vga.c | 1 +
hw/virtio/Makefile.objs | 15 +
hw/virtio/vhost-scsi-pci.c | 95 ++++
hw/virtio/vhost-user-blk-pci.c | 101 ++++
hw/virtio/vhost-user-scsi-pci.c | 101 ++++
hw/virtio/vhost-vsock-pci.c | 82 ++++
hw/virtio/virtio-9p-pci.c | 86 ++++
hw/virtio/virtio-balloon-pci.c | 94 ++++
hw/virtio/virtio-blk-pci.c | 97 ++++
hw/virtio/virtio-crypto-pci.c | 14 +
hw/virtio/virtio-input-host-pci.c | 45 ++
hw/virtio/virtio-input-pci.c | 154 ++++++
hw/virtio/virtio-net-pci.c | 96 ++++
hw/virtio/virtio-pci.c | 783 ------------------------------
hw/virtio/virtio-pci.h | 234 ---------
hw/virtio/virtio-rng-pci.c | 86 ++++
hw/virtio/virtio-scsi-pci.c | 106 ++++
hw/virtio/virtio-serial-pci.c | 112 +++++
tests/Makefile.include | 20 +-
21 files changed, 1311 insertions(+), 1028 deletions(-)
create mode 100644 hw/virtio/vhost-scsi-pci.c
create mode 100644 hw/virtio/vhost-user-blk-pci.c
create mode 100644 hw/virtio/vhost-user-scsi-pci.c
create mode 100644 hw/virtio/vhost-vsock-pci.c
create mode 100644 hw/virtio/virtio-9p-pci.c
create mode 100644 hw/virtio/virtio-balloon-pci.c
create mode 100644 hw/virtio/virtio-blk-pci.c
create mode 100644 hw/virtio/virtio-input-host-pci.c
create mode 100644 hw/virtio/virtio-input-pci.c
create mode 100644 hw/virtio/virtio-net-pci.c
create mode 100644 hw/virtio/virtio-rng-pci.c
create mode 100644 hw/virtio/virtio-scsi-pci.c
create mode 100644 hw/virtio/virtio-serial-pci.c
--
2.19.2
^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 01/16] virtio: split vhost vsock bits from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-14 8:02 ` Thomas Huth
2018-12-18 13:12 ` Stefan Hajnoczi
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 02/16] virtio: split virtio input host " Juan Quintela
` (16 subsequent siblings)
17 siblings, 2 replies; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
Updated copyright info
Also split virtio-pci.h bits
---
hw/virtio/Makefile.objs | 3 ++
hw/virtio/vhost-vsock-pci.c | 82 +++++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 51 -----------------------
hw/virtio/virtio-pci.h | 18 --------
4 files changed, 85 insertions(+), 69 deletions(-)
create mode 100644 hw/virtio/vhost-vsock-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 1b2799cfd8..39884c5f7b 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -11,6 +11,9 @@ obj-$(call land,$(CONFIG_VIRTIO_CRYPTO),$(CONFIG_VIRTIO_PCI)) += virtio-crypto-p
obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
+ifeq ($(CONFIG_PCI),y)
+obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
+endif
endif
common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
diff --git a/hw/virtio/vhost-vsock-pci.c b/hw/virtio/vhost-vsock-pci.c
new file mode 100644
index 0000000000..5cafa8335c
--- /dev/null
+++ b/hw/virtio/vhost-vsock-pci.c
@@ -0,0 +1,82 @@
+/*
+ * Vhost vsock PCI Bindings
+ *
+ * Copyright 2015 Red Hat, Inc.
+ *
+ * Authors:
+ * Stefan Hajnoczi <stefanha@redhat.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version. See the COPYING file in the
+ * top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/virtio/vhost-vsock.h"
+
+typedef struct VHostVSockPCI VHostVSockPCI;
+
+/*
+ * vhost-vsock-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VHOST_VSOCK_PCI "vhost-vsock-pci"
+#define VHOST_VSOCK_PCI(obj) \
+ OBJECT_CHECK(VHostVSockPCI, (obj), TYPE_VHOST_VSOCK_PCI)
+
+struct VHostVSockPCI {
+ VirtIOPCIProxy parent_obj;
+ VHostVSock vdev;
+};
+
+static Property vhost_vsock_pci_properties[] = {
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 3),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void vhost_vsock_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VHostVSockPCI *dev = VHOST_VSOCK_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void vhost_vsock_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ k->realize = vhost_vsock_pci_realize;
+ set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+ dc->props = vhost_vsock_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_VSOCK;
+ pcidev_k->revision = 0x00;
+ pcidev_k->class_id = PCI_CLASS_COMMUNICATION_OTHER;
+}
+
+static void vhost_vsock_pci_instance_init(Object *obj)
+{
+ VHostVSockPCI *dev = VHOST_VSOCK_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VHOST_VSOCK);
+}
+
+static const TypeInfo vhost_vsock_pci_info = {
+ .name = TYPE_VHOST_VSOCK_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VHostVSockPCI),
+ .instance_init = vhost_vsock_pci_instance_init,
+ .class_init = vhost_vsock_pci_class_init,
+};
+
+static void virtio_pci_vhost_register(void)
+{
+ type_register_static(&vhost_vsock_pci_info);
+}
+
+type_init(virtio_pci_vhost_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index a954799267..56b39a3699 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -2238,54 +2238,6 @@ static const TypeInfo vhost_user_scsi_pci_info = {
};
#endif
-/* vhost-vsock-pci */
-
-#ifdef CONFIG_VHOST_VSOCK
-static Property vhost_vsock_pci_properties[] = {
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 3),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void vhost_vsock_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VHostVSockPCI *dev = VHOST_VSOCK_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void vhost_vsock_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- k->realize = vhost_vsock_pci_realize;
- set_bit(DEVICE_CATEGORY_MISC, dc->categories);
- dc->props = vhost_vsock_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_VSOCK;
- pcidev_k->revision = 0x00;
- pcidev_k->class_id = PCI_CLASS_COMMUNICATION_OTHER;
-}
-
-static void vhost_vsock_pci_instance_init(Object *obj)
-{
- VHostVSockPCI *dev = VHOST_VSOCK_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VHOST_VSOCK);
-}
-
-static const TypeInfo vhost_vsock_pci_info = {
- .name = TYPE_VHOST_VSOCK_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VHostVSockPCI),
- .instance_init = vhost_vsock_pci_instance_init,
- .class_init = vhost_vsock_pci_class_init,
-};
-#endif
-
/* virtio-balloon-pci */
static Property virtio_balloon_pci_properties[] = {
@@ -2720,9 +2672,6 @@ static void virtio_pci_register_types(void)
#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
type_register_static(&vhost_user_scsi_pci_info);
#endif
-#ifdef CONFIG_VHOST_VSOCK
- type_register_static(&vhost_vsock_pci_info);
-#endif
}
type_init(virtio_pci_register_types)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 813082b0d7..25d225bc7d 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -37,9 +37,6 @@
#ifdef CONFIG_VHOST_SCSI
#include "hw/virtio/vhost-scsi.h"
#endif
-#ifdef CONFIG_VHOST_VSOCK
-#include "hw/virtio/vhost-vsock.h"
-#endif
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
typedef struct VirtIOBlkPCI VirtIOBlkPCI;
@@ -55,7 +52,6 @@ typedef struct VirtIOInputPCI VirtIOInputPCI;
typedef struct VirtIOInputHIDPCI VirtIOInputHIDPCI;
typedef struct VirtIOInputHostPCI VirtIOInputHostPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
-typedef struct VHostVSockPCI VHostVSockPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
/* virtio-pci-bus */
@@ -388,20 +384,6 @@ struct VirtIOGPUPCI {
VirtIOGPU vdev;
};
-#ifdef CONFIG_VHOST_VSOCK
-/*
- * vhost-vsock-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VHOST_VSOCK_PCI "vhost-vsock-pci"
-#define VHOST_VSOCK_PCI(obj) \
- OBJECT_CHECK(VHostVSockPCI, (obj), TYPE_VHOST_VSOCK_PCI)
-
-struct VHostVSockPCI {
- VirtIOPCIProxy parent_obj;
- VHostVSock vdev;
-};
-#endif
-
/*
* virtio-crypto-pci: This extends VirtioPCIProxy.
*/
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 02/16] virtio: split virtio input host bits from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 01/16] virtio: split vhost vsock bits " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-14 8:29 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 03/16] virtio: split virtio input " Juan Quintela
` (15 subsequent siblings)
17 siblings, 1 reply; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
For consistency with other devices, rename
virtio_host_{initfn,pci_info} to virtio_input_host_{initfn,info}.
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
default-configs/virtio.mak | 1 +
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-input-host-pci.c | 45 +++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 20 --------------
hw/virtio/virtio-pci.h | 14 ----------
5 files changed, 47 insertions(+), 34 deletions(-)
create mode 100644 hw/virtio/virtio-input-host-pci.c
diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
index 1304849018..5ae4a61018 100644
--- a/default-configs/virtio.mak
+++ b/default-configs/virtio.mak
@@ -12,3 +12,4 @@ CONFIG_VIRTIO_RNG=y
CONFIG_SCSI=y
CONFIG_VIRTIO_SCSI=y
CONFIG_VIRTIO_SERIAL=y
+CONFIG_VIRTIO_INPUT_HOST=$(CONFIG_LINUX)
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 39884c5f7b..a6b850ed09 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -13,6 +13,7 @@ obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
ifeq ($(CONFIG_PCI),y)
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
+obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
endif
endif
diff --git a/hw/virtio/virtio-input-host-pci.c b/hw/virtio/virtio-input-host-pci.c
new file mode 100644
index 0000000000..4048e2f01e
--- /dev/null
+++ b/hw/virtio/virtio-input-host-pci.c
@@ -0,0 +1,45 @@
+/*
+ * Virtio input host PCI Bindings
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version. See the COPYING file in the
+ * top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/virtio/virtio-input.h"
+
+typedef struct VirtIOInputHostPCI VirtIOInputHostPCI;
+
+#define TYPE_VIRTIO_INPUT_HOST_PCI "virtio-input-host-pci"
+#define VIRTIO_INPUT_HOST_PCI(obj) \
+ OBJECT_CHECK(VirtIOInputHostPCI, (obj), TYPE_VIRTIO_INPUT_HOST_PCI)
+
+struct VirtIOInputHostPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOInputHost vdev;
+};
+
+static void virtio_input_host_initfn(Object *obj)
+{
+ VirtIOInputHostPCI *dev = VIRTIO_INPUT_HOST_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_INPUT_HOST);
+}
+
+static const TypeInfo virtio_input_host_pci_info = {
+ .name = TYPE_VIRTIO_INPUT_HOST_PCI,
+ .parent = TYPE_VIRTIO_INPUT_PCI,
+ .instance_size = sizeof(VirtIOInputHostPCI),
+ .instance_init = virtio_input_host_initfn,
+};
+
+static void virtio_input_host_pci_register(void)
+{
+ type_register_static(&virtio_input_host_pci_info);
+}
+
+type_init(virtio_input_host_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 56b39a3699..97e40da9e8 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -2580,23 +2580,6 @@ static const TypeInfo virtio_tablet_pci_info = {
.instance_init = virtio_tablet_initfn,
};
-#ifdef CONFIG_LINUX
-static void virtio_host_initfn(Object *obj)
-{
- VirtIOInputHostPCI *dev = VIRTIO_INPUT_HOST_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_INPUT_HOST);
-}
-
-static const TypeInfo virtio_host_pci_info = {
- .name = TYPE_VIRTIO_INPUT_HOST_PCI,
- .parent = TYPE_VIRTIO_INPUT_PCI,
- .instance_size = sizeof(VirtIOInputHostPCI),
- .instance_init = virtio_host_initfn,
-};
-#endif
-
/* virtio-pci-bus */
static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
@@ -2650,9 +2633,6 @@ static void virtio_pci_register_types(void)
type_register_static(&virtio_keyboard_pci_info);
type_register_static(&virtio_mouse_pci_info);
type_register_static(&virtio_tablet_pci_info);
-#ifdef CONFIG_LINUX
- type_register_static(&virtio_host_pci_info);
-#endif
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
#ifdef CONFIG_VIRTFS
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 25d225bc7d..cf4cbecfab 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -50,7 +50,6 @@ typedef struct VHostUserBlkPCI VHostUserBlkPCI;
typedef struct VirtIORngPCI VirtIORngPCI;
typedef struct VirtIOInputPCI VirtIOInputPCI;
typedef struct VirtIOInputHIDPCI VirtIOInputHIDPCI;
-typedef struct VirtIOInputHostPCI VirtIOInputHostPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -359,19 +358,6 @@ struct VirtIOInputHIDPCI {
VirtIOInputHID vdev;
};
-#ifdef CONFIG_LINUX
-
-#define TYPE_VIRTIO_INPUT_HOST_PCI "virtio-input-host-pci"
-#define VIRTIO_INPUT_HOST_PCI(obj) \
- OBJECT_CHECK(VirtIOInputHostPCI, (obj), TYPE_VIRTIO_INPUT_HOST_PCI)
-
-struct VirtIOInputHostPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOInputHost vdev;
-};
-
-#endif
-
/*
* virtio-gpu-pci: This extends VirtioPCIProxy.
*/
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 03/16] virtio: split virtio input bits from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 01/16] virtio: split vhost vsock bits " Juan Quintela
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 02/16] virtio: split virtio input host " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-14 8:47 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 04/16] virtio: split virtio rng " Juan Quintela
` (14 subsequent siblings)
17 siblings, 1 reply; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-input-pci.c | 154 +++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 113 -------------------------
hw/virtio/virtio-pci.h | 22 -----
4 files changed, 155 insertions(+), 135 deletions(-)
create mode 100644 hw/virtio/virtio-input-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index a6b850ed09..c61bcd106b 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -14,6 +14,7 @@ obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
ifeq ($(CONFIG_PCI),y)
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
+obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
endif
endif
diff --git a/hw/virtio/virtio-input-pci.c b/hw/virtio/virtio-input-pci.c
new file mode 100644
index 0000000000..12fc46043e
--- /dev/null
+++ b/hw/virtio/virtio-input-pci.c
@@ -0,0 +1,154 @@
+/*
+ * Virtio input PCI Bindings
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version. See the COPYING file in the
+ * top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/virtio/virtio-input.h"
+
+typedef struct VirtIOInputPCI VirtIOInputPCI;
+typedef struct VirtIOInputHIDPCI VirtIOInputHIDPCI;
+
+/*
+ * virtio-input-pci: This extends VirtioPCIProxy.
+ */
+#define VIRTIO_INPUT_PCI(obj) \
+ OBJECT_CHECK(VirtIOInputPCI, (obj), TYPE_VIRTIO_INPUT_PCI)
+
+struct VirtIOInputPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOInput vdev;
+};
+
+#define TYPE_VIRTIO_INPUT_HID_PCI "virtio-input-hid-pci"
+#define TYPE_VIRTIO_KEYBOARD_PCI "virtio-keyboard-pci"
+#define TYPE_VIRTIO_MOUSE_PCI "virtio-mouse-pci"
+#define TYPE_VIRTIO_TABLET_PCI "virtio-tablet-pci"
+#define VIRTIO_INPUT_HID_PCI(obj) \
+ OBJECT_CHECK(VirtIOInputHIDPCI, (obj), TYPE_VIRTIO_INPUT_HID_PCI)
+
+struct VirtIOInputHIDPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOInputHID vdev;
+};
+
+static Property virtio_input_pci_properties[] = {
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_input_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIOInputPCI *vinput = VIRTIO_INPUT_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&vinput->vdev);
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ virtio_pci_force_virtio_1(vpci_dev);
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void virtio_input_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ dc->props = virtio_input_pci_properties;
+ k->realize = virtio_input_pci_realize;
+ set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
+
+ pcidev_k->class_id = PCI_CLASS_INPUT_OTHER;
+}
+
+static void virtio_input_hid_kbd_pci_class_init(ObjectClass *klass, void *data)
+{
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ pcidev_k->class_id = PCI_CLASS_INPUT_KEYBOARD;
+}
+
+static void virtio_input_hid_mouse_pci_class_init(ObjectClass *klass,
+ void *data)
+{
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ pcidev_k->class_id = PCI_CLASS_INPUT_MOUSE;
+}
+
+static void virtio_keyboard_initfn(Object *obj)
+{
+ VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_KEYBOARD);
+}
+
+static void virtio_mouse_initfn(Object *obj)
+{
+ VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_MOUSE);
+}
+
+static void virtio_tablet_initfn(Object *obj)
+{
+ VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_TABLET);
+}
+
+static const TypeInfo virtio_input_pci_info = {
+ .name = TYPE_VIRTIO_INPUT_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIOInputPCI),
+ .class_init = virtio_input_pci_class_init,
+ .abstract = true,
+};
+
+static const TypeInfo virtio_input_hid_pci_info = {
+ .name = TYPE_VIRTIO_INPUT_HID_PCI,
+ .parent = TYPE_VIRTIO_INPUT_PCI,
+ .instance_size = sizeof(VirtIOInputHIDPCI),
+ .abstract = true,
+};
+
+static const TypeInfo virtio_keyboard_pci_info = {
+ .name = TYPE_VIRTIO_KEYBOARD_PCI,
+ .parent = TYPE_VIRTIO_INPUT_HID_PCI,
+ .class_init = virtio_input_hid_kbd_pci_class_init,
+ .instance_size = sizeof(VirtIOInputHIDPCI),
+ .instance_init = virtio_keyboard_initfn,
+};
+
+static const TypeInfo virtio_mouse_pci_info = {
+ .name = TYPE_VIRTIO_MOUSE_PCI,
+ .parent = TYPE_VIRTIO_INPUT_HID_PCI,
+ .class_init = virtio_input_hid_mouse_pci_class_init,
+ .instance_size = sizeof(VirtIOInputHIDPCI),
+ .instance_init = virtio_mouse_initfn,
+};
+
+static const TypeInfo virtio_tablet_pci_info = {
+ .name = TYPE_VIRTIO_TABLET_PCI,
+ .parent = TYPE_VIRTIO_INPUT_HID_PCI,
+ .instance_size = sizeof(VirtIOInputHIDPCI),
+ .instance_init = virtio_tablet_initfn,
+};
+
+static void virtio_pci_input_register(void)
+{
+ type_register_static(&virtio_input_pci_info);
+ type_register_static(&virtio_input_hid_pci_info);
+ type_register_static(&virtio_keyboard_pci_info);
+ type_register_static(&virtio_mouse_pci_info);
+ type_register_static(&virtio_tablet_pci_info);
+}
+
+type_init(virtio_pci_input_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 97e40da9e8..bb1d2db032 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -24,7 +24,6 @@
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-scsi.h"
#include "hw/virtio/virtio-balloon.h"
-#include "hw/virtio/virtio-input.h"
#include "hw/pci/pci.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
@@ -2473,113 +2472,6 @@ static const TypeInfo virtio_rng_pci_info = {
.class_init = virtio_rng_pci_class_init,
};
-/* virtio-input-pci */
-
-static Property virtio_input_pci_properties[] = {
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_input_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIOInputPCI *vinput = VIRTIO_INPUT_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&vinput->vdev);
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- virtio_pci_force_virtio_1(vpci_dev);
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void virtio_input_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- dc->props = virtio_input_pci_properties;
- k->realize = virtio_input_pci_realize;
- set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
-
- pcidev_k->class_id = PCI_CLASS_INPUT_OTHER;
-}
-
-static void virtio_input_hid_kbd_pci_class_init(ObjectClass *klass, void *data)
-{
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- pcidev_k->class_id = PCI_CLASS_INPUT_KEYBOARD;
-}
-
-static void virtio_input_hid_mouse_pci_class_init(ObjectClass *klass,
- void *data)
-{
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- pcidev_k->class_id = PCI_CLASS_INPUT_MOUSE;
-}
-
-static void virtio_keyboard_initfn(Object *obj)
-{
- VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_KEYBOARD);
-}
-
-static void virtio_mouse_initfn(Object *obj)
-{
- VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_MOUSE);
-}
-
-static void virtio_tablet_initfn(Object *obj)
-{
- VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_TABLET);
-}
-
-static const TypeInfo virtio_input_pci_info = {
- .name = TYPE_VIRTIO_INPUT_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIOInputPCI),
- .class_init = virtio_input_pci_class_init,
- .abstract = true,
-};
-
-static const TypeInfo virtio_input_hid_pci_info = {
- .name = TYPE_VIRTIO_INPUT_HID_PCI,
- .parent = TYPE_VIRTIO_INPUT_PCI,
- .instance_size = sizeof(VirtIOInputHIDPCI),
- .abstract = true,
-};
-
-static const TypeInfo virtio_keyboard_pci_info = {
- .name = TYPE_VIRTIO_KEYBOARD_PCI,
- .parent = TYPE_VIRTIO_INPUT_HID_PCI,
- .class_init = virtio_input_hid_kbd_pci_class_init,
- .instance_size = sizeof(VirtIOInputHIDPCI),
- .instance_init = virtio_keyboard_initfn,
-};
-
-static const TypeInfo virtio_mouse_pci_info = {
- .name = TYPE_VIRTIO_MOUSE_PCI,
- .parent = TYPE_VIRTIO_INPUT_HID_PCI,
- .class_init = virtio_input_hid_mouse_pci_class_init,
- .instance_size = sizeof(VirtIOInputHIDPCI),
- .instance_init = virtio_mouse_initfn,
-};
-
-static const TypeInfo virtio_tablet_pci_info = {
- .name = TYPE_VIRTIO_TABLET_PCI,
- .parent = TYPE_VIRTIO_INPUT_HID_PCI,
- .instance_size = sizeof(VirtIOInputHIDPCI),
- .instance_init = virtio_tablet_initfn,
-};
-
/* virtio-pci-bus */
static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
@@ -2628,11 +2520,6 @@ static const TypeInfo virtio_pci_bus_info = {
static void virtio_pci_register_types(void)
{
type_register_static(&virtio_rng_pci_info);
- type_register_static(&virtio_input_pci_info);
- type_register_static(&virtio_input_hid_pci_info);
- type_register_static(&virtio_keyboard_pci_info);
- type_register_static(&virtio_mouse_pci_info);
- type_register_static(&virtio_tablet_pci_info);
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
#ifdef CONFIG_VIRTFS
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index cf4cbecfab..32d5f0fbff 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -23,7 +23,6 @@
#include "hw/virtio/virtio-scsi.h"
#include "hw/virtio/virtio-balloon.h"
#include "hw/virtio/virtio-bus.h"
-#include "hw/virtio/virtio-input.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
#include "hw/virtio/vhost-user-scsi.h"
@@ -48,8 +47,6 @@ typedef struct VHostSCSIPCI VHostSCSIPCI;
typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
typedef struct VHostUserBlkPCI VHostUserBlkPCI;
typedef struct VirtIORngPCI VirtIORngPCI;
-typedef struct VirtIOInputPCI VirtIOInputPCI;
-typedef struct VirtIOInputHIDPCI VirtIOInputHIDPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -338,25 +335,6 @@ struct VirtIORngPCI {
* virtio-input-pci: This extends VirtioPCIProxy.
*/
#define TYPE_VIRTIO_INPUT_PCI "virtio-input-pci"
-#define VIRTIO_INPUT_PCI(obj) \
- OBJECT_CHECK(VirtIOInputPCI, (obj), TYPE_VIRTIO_INPUT_PCI)
-
-struct VirtIOInputPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOInput vdev;
-};
-
-#define TYPE_VIRTIO_INPUT_HID_PCI "virtio-input-hid-pci"
-#define TYPE_VIRTIO_KEYBOARD_PCI "virtio-keyboard-pci"
-#define TYPE_VIRTIO_MOUSE_PCI "virtio-mouse-pci"
-#define TYPE_VIRTIO_TABLET_PCI "virtio-tablet-pci"
-#define VIRTIO_INPUT_HID_PCI(obj) \
- OBJECT_CHECK(VirtIOInputHIDPCI, (obj), TYPE_VIRTIO_INPUT_HID_PCI)
-
-struct VirtIOInputHIDPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOInputHID vdev;
-};
/*
* virtio-gpu-pci: This extends VirtioPCIProxy.
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 04/16] virtio: split virtio rng bits from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (2 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 03/16] virtio: split virtio input " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-14 8:50 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 05/16] virtio: split virtio balloon " Juan Quintela
` (13 subsequent siblings)
17 siblings, 1 reply; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
Remove the "contributions after" clause. This is based on
commit 59ccd20a9ac719cff82180429458728f03ec612f
Author: KONRAD Frederic <fred.konrad@greensocs.com>
Date: Wed Apr 24 10:07:56 2013 +0200
Fix duplicated test entry (lvivier)
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-pci.c | 52 -----------------------
hw/virtio/virtio-pci.h | 14 -------
hw/virtio/virtio-rng-pci.c | 86 ++++++++++++++++++++++++++++++++++++++
tests/Makefile.include | 2 +-
5 files changed, 88 insertions(+), 67 deletions(-)
create mode 100644 hw/virtio/virtio-rng-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index c61bcd106b..032ba2ff0e 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -15,6 +15,7 @@ ifeq ($(CONFIG_PCI),y)
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
+obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
endif
endif
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index bb1d2db032..433ece611d 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -2421,57 +2421,6 @@ static const TypeInfo virtio_net_pci_info = {
.class_init = virtio_net_pci_class_init,
};
-/* virtio-rng-pci */
-
-static void virtio_rng_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIORngPCI *vrng = VIRTIO_RNG_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&vrng->vdev);
- Error *err = NULL;
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", &err);
- if (err) {
- error_propagate(errp, err);
- return;
- }
-
- object_property_set_link(OBJECT(vrng),
- OBJECT(vrng->vdev.conf.rng), "rng",
- NULL);
-}
-
-static void virtio_rng_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- k->realize = virtio_rng_pci_realize;
- set_bit(DEVICE_CATEGORY_MISC, dc->categories);
-
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_RNG;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = PCI_CLASS_OTHERS;
-}
-
-static void virtio_rng_initfn(Object *obj)
-{
- VirtIORngPCI *dev = VIRTIO_RNG_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_RNG);
-}
-
-static const TypeInfo virtio_rng_pci_info = {
- .name = TYPE_VIRTIO_RNG_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIORngPCI),
- .instance_init = virtio_rng_initfn,
- .class_init = virtio_rng_pci_class_init,
-};
-
/* virtio-pci-bus */
static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
@@ -2519,7 +2468,6 @@ static const TypeInfo virtio_pci_bus_info = {
static void virtio_pci_register_types(void)
{
- type_register_static(&virtio_rng_pci_info);
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
#ifdef CONFIG_VIRTFS
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 32d5f0fbff..2415eb6a4d 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -18,7 +18,6 @@
#include "hw/pci/msi.h"
#include "hw/virtio/virtio-blk.h"
#include "hw/virtio/virtio-net.h"
-#include "hw/virtio/virtio-rng.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-scsi.h"
#include "hw/virtio/virtio-balloon.h"
@@ -46,7 +45,6 @@ typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VHostSCSIPCI VHostSCSIPCI;
typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
typedef struct VHostUserBlkPCI VHostUserBlkPCI;
-typedef struct VirtIORngPCI VirtIORngPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -319,18 +317,6 @@ typedef struct V9fsPCIState {
#endif
-/*
- * virtio-rng-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_RNG_PCI "virtio-rng-pci"
-#define VIRTIO_RNG_PCI(obj) \
- OBJECT_CHECK(VirtIORngPCI, (obj), TYPE_VIRTIO_RNG_PCI)
-
-struct VirtIORngPCI {
- VirtIOPCIProxy parent_obj;
- VirtIORNG vdev;
-};
-
/*
* virtio-input-pci: This extends VirtioPCIProxy.
*/
diff --git a/hw/virtio/virtio-rng-pci.c b/hw/virtio/virtio-rng-pci.c
new file mode 100644
index 0000000000..60688fbea9
--- /dev/null
+++ b/hw/virtio/virtio-rng-pci.c
@@ -0,0 +1,86 @@
+/*
+ * Virtio rng PCI Bindings
+ *
+ * Copyright 2012 Red Hat, Inc.
+ * Copyright 2012 Amit Shah <amit.shah@redhat.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version. See the COPYING file in the
+ * top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/virtio/virtio-rng.h"
+#include "qapi/error.h"
+
+typedef struct VirtIORngPCI VirtIORngPCI;
+
+/*
+ * virtio-rng-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_RNG_PCI "virtio-rng-pci"
+#define VIRTIO_RNG_PCI(obj) \
+ OBJECT_CHECK(VirtIORngPCI, (obj), TYPE_VIRTIO_RNG_PCI)
+
+struct VirtIORngPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIORNG vdev;
+};
+
+static void virtio_rng_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIORngPCI *vrng = VIRTIO_RNG_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&vrng->vdev);
+ Error *err = NULL;
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", &err);
+ if (err) {
+ error_propagate(errp, err);
+ return;
+ }
+
+ object_property_set_link(OBJECT(vrng),
+ OBJECT(vrng->vdev.conf.rng), "rng",
+ NULL);
+}
+
+static void virtio_rng_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ k->realize = virtio_rng_pci_realize;
+ set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_RNG;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = PCI_CLASS_OTHERS;
+}
+
+static void virtio_rng_initfn(Object *obj)
+{
+ VirtIORngPCI *dev = VIRTIO_RNG_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_RNG);
+}
+
+static const TypeInfo virtio_rng_pci_info = {
+ .name = TYPE_VIRTIO_RNG_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIORngPCI),
+ .instance_init = virtio_rng_initfn,
+ .class_init = virtio_rng_pci_class_init,
+};
+
+static void virtio_rng_pci_register(void)
+{
+ type_register_static(&virtio_rng_pci_info);
+}
+
+type_init(virtio_rng_pci_register)
diff --git a/tests/Makefile.include b/tests/Makefile.include
index fb0b449c02..aa4e89704d 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -148,7 +148,7 @@ check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
-check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 05/16] virtio: split virtio balloon bits from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (3 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 04/16] virtio: split virtio rng " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-20 14:27 ` Stefano Garzarella
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 06/16] virtio: split virtio 9p " Juan Quintela
` (12 subsequent siblings)
17 siblings, 1 reply; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-balloon-pci.c | 94 ++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 58 ---------------------
hw/virtio/virtio-pci.h | 14 -----
tests/Makefile.include | 2 +-
5 files changed, 96 insertions(+), 73 deletions(-)
create mode 100644 hw/virtio/virtio-balloon-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 032ba2ff0e..9e33104ce6 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -16,6 +16,7 @@ obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
+obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
endif
endif
diff --git a/hw/virtio/virtio-balloon-pci.c b/hw/virtio/virtio-balloon-pci.c
new file mode 100644
index 0000000000..2e9d92990b
--- /dev/null
+++ b/hw/virtio/virtio-balloon-pci.c
@@ -0,0 +1,94 @@
+/*
+ * Virtio balloon PCI Bindings
+ *
+ * Copyright IBM, Corp. 2007
+ * Copyright (c) 2009 CodeSourcery
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paul Brook <paul@codesourcery.com>
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/virtio/virtio-balloon.h"
+#include "qapi/error.h"
+
+typedef struct VirtIOBalloonPCI VirtIOBalloonPCI;
+
+/*
+ * virtio-balloon-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_BALLOON_PCI "virtio-balloon-pci"
+#define VIRTIO_BALLOON_PCI(obj) \
+ OBJECT_CHECK(VirtIOBalloonPCI, (obj), TYPE_VIRTIO_BALLOON_PCI)
+
+struct VirtIOBalloonPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOBalloon vdev;
+};
+
+static Property virtio_balloon_pci_properties[] = {
+ DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_balloon_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIOBalloonPCI *dev = VIRTIO_BALLOON_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ if (vpci_dev->class_code != PCI_CLASS_OTHERS &&
+ vpci_dev->class_code != PCI_CLASS_MEMORY_RAM) { /* qemu < 1.1 */
+ vpci_dev->class_code = PCI_CLASS_OTHERS;
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void virtio_balloon_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ k->realize = virtio_balloon_pci_realize;
+ set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+ dc->props = virtio_balloon_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BALLOON;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = PCI_CLASS_OTHERS;
+}
+
+static void virtio_balloon_pci_instance_init(Object *obj)
+{
+ VirtIOBalloonPCI *dev = VIRTIO_BALLOON_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_BALLOON);
+ object_property_add_alias(obj, "guest-stats", OBJECT(&dev->vdev),
+ "guest-stats", &error_abort);
+ object_property_add_alias(obj, "guest-stats-polling-interval",
+ OBJECT(&dev->vdev),
+ "guest-stats-polling-interval", &error_abort);
+}
+
+static const TypeInfo virtio_balloon_pci_info = {
+ .name = TYPE_VIRTIO_BALLOON_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIOBalloonPCI),
+ .instance_init = virtio_balloon_pci_instance_init,
+ .class_init = virtio_balloon_pci_class_init,
+};
+
+static void virtio_balloon_pci_register(void)
+{
+ type_register_static(&virtio_balloon_pci_info);
+}
+
+type_init(virtio_balloon_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 433ece611d..855a7fdd40 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -23,7 +23,6 @@
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-scsi.h"
-#include "hw/virtio/virtio-balloon.h"
#include "hw/pci/pci.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
@@ -2237,62 +2236,6 @@ static const TypeInfo vhost_user_scsi_pci_info = {
};
#endif
-/* virtio-balloon-pci */
-
-static Property virtio_balloon_pci_properties[] = {
- DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_balloon_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIOBalloonPCI *dev = VIRTIO_BALLOON_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- if (vpci_dev->class_code != PCI_CLASS_OTHERS &&
- vpci_dev->class_code != PCI_CLASS_MEMORY_RAM) { /* qemu < 1.1 */
- vpci_dev->class_code = PCI_CLASS_OTHERS;
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void virtio_balloon_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- k->realize = virtio_balloon_pci_realize;
- set_bit(DEVICE_CATEGORY_MISC, dc->categories);
- dc->props = virtio_balloon_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BALLOON;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = PCI_CLASS_OTHERS;
-}
-
-static void virtio_balloon_pci_instance_init(Object *obj)
-{
- VirtIOBalloonPCI *dev = VIRTIO_BALLOON_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_BALLOON);
- object_property_add_alias(obj, "guest-stats", OBJECT(&dev->vdev),
- "guest-stats", &error_abort);
- object_property_add_alias(obj, "guest-stats-polling-interval",
- OBJECT(&dev->vdev),
- "guest-stats-polling-interval", &error_abort);
-}
-
-static const TypeInfo virtio_balloon_pci_info = {
- .name = TYPE_VIRTIO_BALLOON_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIOBalloonPCI),
- .instance_init = virtio_balloon_pci_instance_init,
- .class_init = virtio_balloon_pci_class_init,
-};
-
/* virtio-serial-pci */
static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
@@ -2478,7 +2421,6 @@ static void virtio_pci_register_types(void)
type_register_static(&vhost_user_blk_pci_info);
#endif
type_register_static(&virtio_scsi_pci_info);
- type_register_static(&virtio_balloon_pci_info);
type_register_static(&virtio_serial_pci_info);
type_register_static(&virtio_net_pci_info);
#ifdef CONFIG_VHOST_SCSI
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 2415eb6a4d..093fde7f4f 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -20,7 +20,6 @@
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-scsi.h"
-#include "hw/virtio/virtio-balloon.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
@@ -39,7 +38,6 @@
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
typedef struct VirtIOBlkPCI VirtIOBlkPCI;
typedef struct VirtIOSCSIPCI VirtIOSCSIPCI;
-typedef struct VirtIOBalloonPCI VirtIOBalloonPCI;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VHostSCSIPCI VHostSCSIPCI;
@@ -264,18 +262,6 @@ struct VirtIOBlkPCI {
VirtIOBlock vdev;
};
-/*
- * virtio-balloon-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_BALLOON_PCI "virtio-balloon-pci"
-#define VIRTIO_BALLOON_PCI(obj) \
- OBJECT_CHECK(VirtIOBalloonPCI, (obj), TYPE_VIRTIO_BALLOON_PCI)
-
-struct VirtIOBalloonPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOBalloon vdev;
-};
-
/*
* virtio-serial-pci: This extends VirtioPCIProxy.
*/
diff --git a/tests/Makefile.include b/tests/Makefile.include
index aa4e89704d..dd7c882cc5 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -146,7 +146,7 @@ check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
-check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 06/16] virtio: split virtio 9p bits from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (4 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 05/16] virtio: split virtio balloon " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-14 8:59 ` Thomas Huth
2018-12-28 16:09 ` Greg Kurz
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 07/16] virtio: split vhost user blk " Juan Quintela
` (11 subsequent siblings)
17 siblings, 2 replies; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
Also disable virtio9p test (lvivier)
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-9p-pci.c | 86 +++++++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 52 -----------------------
hw/virtio/virtio-pci.h | 20 ---------
tests/Makefile.include | 2 +-
5 files changed, 88 insertions(+), 73 deletions(-)
create mode 100644 hw/virtio/virtio-9p-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 9e33104ce6..3e655fdce6 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -17,6 +17,7 @@ obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
+obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
endif
endif
diff --git a/hw/virtio/virtio-9p-pci.c b/hw/virtio/virtio-9p-pci.c
new file mode 100644
index 0000000000..74c6ca2ddb
--- /dev/null
+++ b/hw/virtio/virtio-9p-pci.c
@@ -0,0 +1,86 @@
+/*
+ * Virtio 9p PCI Bindings
+ *
+ * Copyright IBM, Corp. 2010
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2. See
+ * the COPYING file in the top-level directory.
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/9pfs/virtio-9p.h"
+
+/*
+ * virtio-9p-pci: This extends VirtioPCIProxy.
+ */
+
+#define TYPE_VIRTIO_9P_PCI "virtio-9p-pci"
+#define VIRTIO_9P_PCI(obj) \
+ OBJECT_CHECK(V9fsPCIState, (obj), TYPE_VIRTIO_9P_PCI)
+
+typedef struct V9fsPCIState {
+ VirtIOPCIProxy parent_obj;
+ V9fsVirtioState vdev;
+} V9fsPCIState;
+
+static void virtio_9p_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ V9fsPCIState *dev = VIRTIO_9P_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static Property virtio_9p_pci_properties[] = {
+ DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
+ VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_9p_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+
+ k->realize = virtio_9p_pci_realize;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_9P;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = 0x2;
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = virtio_9p_pci_properties;
+}
+
+static void virtio_9p_pci_instance_init(Object *obj)
+{
+ V9fsPCIState *dev = VIRTIO_9P_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_9P);
+}
+
+static const TypeInfo virtio_9p_pci_info = {
+ .name = TYPE_VIRTIO_9P_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(V9fsPCIState),
+ .instance_init = virtio_9p_pci_instance_init,
+ .class_init = virtio_9p_pci_class_init,
+};
+
+static void virtio_9p_pci_register(void)
+{
+ type_register_static(&virtio_9p_pci_info);
+}
+
+type_init(virtio_9p_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 855a7fdd40..bad9279f19 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -1077,55 +1077,6 @@ static void virtio_pci_vmstate_change(DeviceState *d, bool running)
}
}
-#ifdef CONFIG_VIRTFS
-static void virtio_9p_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- V9fsPCIState *dev = VIRTIO_9P_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static Property virtio_9p_pci_properties[] = {
- DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
- VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_9p_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
-
- k->realize = virtio_9p_pci_realize;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_9P;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = 0x2;
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = virtio_9p_pci_properties;
-}
-
-static void virtio_9p_pci_instance_init(Object *obj)
-{
- V9fsPCIState *dev = VIRTIO_9P_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_9P);
-}
-
-static const TypeInfo virtio_9p_pci_info = {
- .name = TYPE_VIRTIO_9P_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(V9fsPCIState),
- .instance_init = virtio_9p_pci_instance_init,
- .class_init = virtio_9p_pci_class_init,
-};
-#endif /* CONFIG_VIRTFS */
-
/*
* virtio-pci: This is the PCIDevice which has a virtio-pci-bus.
*/
@@ -2413,9 +2364,6 @@ static void virtio_pci_register_types(void)
{
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
-#ifdef CONFIG_VIRTFS
- type_register_static(&virtio_9p_pci_info);
-#endif
type_register_static(&virtio_blk_pci_info);
#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
type_register_static(&vhost_user_blk_pci_info);
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 093fde7f4f..200950de0a 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -28,9 +28,6 @@
#include "hw/virtio/vhost-user-blk.h"
#endif
-#ifdef CONFIG_VIRTFS
-#include "hw/9pfs/virtio-9p.h"
-#endif
#ifdef CONFIG_VHOST_SCSI
#include "hw/virtio/vhost-scsi.h"
#endif
@@ -286,23 +283,6 @@ struct VirtIONetPCI {
VirtIONet vdev;
};
-/*
- * virtio-9p-pci: This extends VirtioPCIProxy.
- */
-
-#ifdef CONFIG_VIRTFS
-
-#define TYPE_VIRTIO_9P_PCI "virtio-9p-pci"
-#define VIRTIO_9P_PCI(obj) \
- OBJECT_CHECK(V9fsPCIState, (obj), TYPE_VIRTIO_9P_PCI)
-
-typedef struct V9fsPCIState {
- VirtIOPCIProxy parent_obj;
- V9fsVirtioState vdev;
-} V9fsPCIState;
-
-#endif
-
/*
* virtio-input-pci: This extends VirtioPCIProxy.
*/
diff --git a/tests/Makefile.include b/tests/Makefile.include
index dd7c882cc5..90d33bb058 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -151,7 +151,7 @@ check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
-check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_9P) += tests/virtio-9p-test$(EXESUF)
endif
check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 07/16] virtio: split vhost user blk bits from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (5 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 06/16] virtio: split virtio 9p " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-18 13:13 ` Stefan Hajnoczi
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 08/16] virtio: split vhost user scsi " Juan Quintela
` (10 subsequent siblings)
17 siblings, 1 reply; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/vhost-user-blk-pci.c | 101 +++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 60 --------------------
hw/virtio/virtio-pci.h | 18 ------
4 files changed, 102 insertions(+), 78 deletions(-)
create mode 100644 hw/virtio/vhost-user-blk-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 3e655fdce6..35b7698446 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -13,6 +13,7 @@ obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
ifeq ($(CONFIG_PCI),y)
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
+obj-$(CONFIG_VHOST_USER_BLK) += vhost-user-blk-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
diff --git a/hw/virtio/vhost-user-blk-pci.c b/hw/virtio/vhost-user-blk-pci.c
new file mode 100644
index 0000000000..29ffcc4361
--- /dev/null
+++ b/hw/virtio/vhost-user-blk-pci.c
@@ -0,0 +1,101 @@
+/*
+ * Vhost user blk PCI Bindings
+ *
+ * Copyright(C) 2017 Intel Corporation.
+ *
+ * Authors:
+ * Changpeng Liu <changpeng.liu@intel.com>
+ *
+ * Largely based on the "vhost-user-scsi.c" and "vhost-scsi.c" implemented by:
+ * Felipe Franciosi <felipe@nutanix.com>
+ * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
+ * Nicholas Bellinger <nab@risingtidesystems.com>
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+
+#include "standard-headers/linux/virtio_pci.h"
+#include "hw/virtio/virtio.h"
+#include "hw/virtio/vhost-user-blk.h"
+#include "hw/pci/pci.h"
+#include "qapi/error.h"
+#include "qemu/error-report.h"
+#include "virtio-pci.h"
+
+typedef struct VHostUserBlkPCI VHostUserBlkPCI;
+
+/*
+ * vhost-user-blk-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VHOST_USER_BLK_PCI "vhost-user-blk-pci"
+#define VHOST_USER_BLK_PCI(obj) \
+ OBJECT_CHECK(VHostUserBlkPCI, (obj), TYPE_VHOST_USER_BLK_PCI)
+
+struct VHostUserBlkPCI {
+ VirtIOPCIProxy parent_obj;
+ VHostUserBlk vdev;
+};
+
+static Property vhost_user_blk_pci_properties[] = {
+ DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
+ DEV_NVECTORS_UNSPECIFIED),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void vhost_user_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VHostUserBlkPCI *dev = VHOST_USER_BLK_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = dev->vdev.num_queues + 1;
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void vhost_user_blk_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = vhost_user_blk_pci_properties;
+ k->realize = vhost_user_blk_pci_realize;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BLOCK;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
+}
+
+static void vhost_user_blk_pci_instance_init(Object *obj)
+{
+ VHostUserBlkPCI *dev = VHOST_USER_BLK_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VHOST_USER_BLK);
+ object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
+ "bootindex", &error_abort);
+}
+
+static const TypeInfo vhost_user_blk_pci_info = {
+ .name = TYPE_VHOST_USER_BLK_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VHostUserBlkPCI),
+ .instance_init = vhost_user_blk_pci_instance_init,
+ .class_init = vhost_user_blk_pci_class_init,
+};
+
+static void vhost_user_blk_pci_register(void)
+{
+ type_register_static(&vhost_user_blk_pci_info);
+}
+
+type_init(vhost_user_blk_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index bad9279f19..e9c562b1c0 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -1952,63 +1952,6 @@ static const TypeInfo virtio_blk_pci_info = {
.class_init = virtio_blk_pci_class_init,
};
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
-/* vhost-user-blk */
-
-static Property vhost_user_blk_pci_properties[] = {
- DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
- DEV_NVECTORS_UNSPECIFIED),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void vhost_user_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VHostUserBlkPCI *dev = VHOST_USER_BLK_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = dev->vdev.num_queues + 1;
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void vhost_user_blk_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = vhost_user_blk_pci_properties;
- k->realize = vhost_user_blk_pci_realize;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BLOCK;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
-}
-
-static void vhost_user_blk_pci_instance_init(Object *obj)
-{
- VHostUserBlkPCI *dev = VHOST_USER_BLK_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VHOST_USER_BLK);
- object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
- "bootindex", &error_abort);
-}
-
-static const TypeInfo vhost_user_blk_pci_info = {
- .name = TYPE_VHOST_USER_BLK_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VHostUserBlkPCI),
- .instance_init = vhost_user_blk_pci_instance_init,
- .class_init = vhost_user_blk_pci_class_init,
-};
-#endif
-
/* virtio-scsi-pci */
static Property virtio_scsi_pci_properties[] = {
@@ -2365,9 +2308,6 @@ static void virtio_pci_register_types(void)
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
type_register_static(&virtio_blk_pci_info);
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
- type_register_static(&vhost_user_blk_pci_info);
-#endif
type_register_static(&virtio_scsi_pci_info);
type_register_static(&virtio_serial_pci_info);
type_register_static(&virtio_net_pci_info);
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 200950de0a..5e37982f88 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -24,9 +24,6 @@
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
#include "hw/virtio/vhost-user-scsi.h"
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
-#include "hw/virtio/vhost-user-blk.h"
-#endif
#ifdef CONFIG_VHOST_SCSI
#include "hw/virtio/vhost-scsi.h"
@@ -39,7 +36,6 @@ typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VHostSCSIPCI VHostSCSIPCI;
typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
-typedef struct VHostUserBlkPCI VHostUserBlkPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -233,20 +229,6 @@ struct VHostUserSCSIPCI {
VHostUserSCSI vdev;
};
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
-/*
- * vhost-user-blk-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VHOST_USER_BLK_PCI "vhost-user-blk-pci"
-#define VHOST_USER_BLK_PCI(obj) \
- OBJECT_CHECK(VHostUserBlkPCI, (obj), TYPE_VHOST_USER_BLK_PCI)
-
-struct VHostUserBlkPCI {
- VirtIOPCIProxy parent_obj;
- VHostUserBlk vdev;
-};
-#endif
-
/*
* virtio-blk-pci: This extends VirtioPCIProxy.
*/
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 08/16] virtio: split vhost user scsi bits from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (6 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 07/16] virtio: split vhost user blk " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-14 9:14 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 09/16] virtio: split vhost " Juan Quintela
` (9 subsequent siblings)
17 siblings, 1 reply; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/vhost-user-scsi-pci.c | 101 ++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 58 ------------------
hw/virtio/virtio-pci.h | 11 ----
4 files changed, 102 insertions(+), 69 deletions(-)
create mode 100644 hw/virtio/vhost-user-scsi-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 35b7698446..f851a6f2b5 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -14,6 +14,7 @@ obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
ifeq ($(CONFIG_PCI),y)
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
obj-$(CONFIG_VHOST_USER_BLK) += vhost-user-blk-pci.o
+obj-$(CONFIG_VHOST_USER_SCSI) += vhost-user-scsi-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
diff --git a/hw/virtio/vhost-user-scsi-pci.c b/hw/virtio/vhost-user-scsi-pci.c
new file mode 100644
index 0000000000..5baec9c356
--- /dev/null
+++ b/hw/virtio/vhost-user-scsi-pci.c
@@ -0,0 +1,101 @@
+/*
+ * Vhost user scsi PCI Bindings
+ *
+ * Copyright (c) 2016 Nutanix Inc. All rights reserved.
+ *
+ * Author:
+ * Felipe Franciosi <felipe@nutanix.com>
+ *
+ * This work is largely based on the "vhost-scsi" implementation by:
+ * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
+ * Nicholas Bellinger <nab@risingtidesystems.com>
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+
+#include "standard-headers/linux/virtio_pci.h"
+#include "hw/virtio/vhost-user-scsi.h"
+#include "hw/virtio/virtio.h"
+#include "hw/virtio/virtio-scsi.h"
+#include "hw/pci/pci.h"
+#include "qapi/error.h"
+#include "qemu/error-report.h"
+#include "hw/pci/msi.h"
+#include "hw/pci/msix.h"
+#include "hw/loader.h"
+#include "sysemu/kvm.h"
+#include "virtio-pci.h"
+
+typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
+
+#define TYPE_VHOST_USER_SCSI_PCI "vhost-user-scsi-pci"
+#define VHOST_USER_SCSI_PCI(obj) \
+ OBJECT_CHECK(VHostUserSCSIPCI, (obj), TYPE_VHOST_USER_SCSI_PCI)
+
+struct VHostUserSCSIPCI {
+ VirtIOPCIProxy parent_obj;
+ VHostUserSCSI vdev;
+};
+
+static Property vhost_user_scsi_pci_properties[] = {
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
+ DEV_NVECTORS_UNSPECIFIED),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void vhost_user_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+ VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
+
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = vs->conf.num_queues + 3;
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void vhost_user_scsi_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ k->realize = vhost_user_scsi_pci_realize;
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = vhost_user_scsi_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
+ pcidev_k->revision = 0x00;
+ pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
+}
+
+static void vhost_user_scsi_pci_instance_init(Object *obj)
+{
+ VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VHOST_USER_SCSI);
+ object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
+ "bootindex", &error_abort);
+}
+
+static const TypeInfo vhost_user_scsi_pci_info = {
+ .name = TYPE_VHOST_USER_SCSI_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VHostUserSCSIPCI),
+ .instance_init = vhost_user_scsi_pci_instance_init,
+ .class_init = vhost_user_scsi_pci_class_init,
+};
+
+static void vhost_user_scsi_pci_register(void)
+{
+ type_register_static(&vhost_user_scsi_pci_info);
+}
+
+type_init(vhost_user_scsi_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index e9c562b1c0..7c99d9385a 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -2075,61 +2075,6 @@ static const TypeInfo vhost_scsi_pci_info = {
};
#endif
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
-/* vhost-user-scsi-pci */
-static Property vhost_user_scsi_pci_properties[] = {
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
- DEV_NVECTORS_UNSPECIFIED),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void vhost_user_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
- VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
-
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = vs->conf.num_queues + 3;
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void vhost_user_scsi_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- k->realize = vhost_user_scsi_pci_realize;
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = vhost_user_scsi_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
- pcidev_k->revision = 0x00;
- pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
-}
-
-static void vhost_user_scsi_pci_instance_init(Object *obj)
-{
- VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VHOST_USER_SCSI);
- object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
- "bootindex", &error_abort);
-}
-
-static const TypeInfo vhost_user_scsi_pci_info = {
- .name = TYPE_VHOST_USER_SCSI_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VHostUserSCSIPCI),
- .instance_init = vhost_user_scsi_pci_instance_init,
- .class_init = vhost_user_scsi_pci_class_init,
-};
-#endif
-
/* virtio-serial-pci */
static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
@@ -2314,9 +2259,6 @@ static void virtio_pci_register_types(void)
#ifdef CONFIG_VHOST_SCSI
type_register_static(&vhost_scsi_pci_info);
#endif
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
- type_register_static(&vhost_user_scsi_pci_info);
-#endif
}
type_init(virtio_pci_register_types)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 5e37982f88..7f06d7f331 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -23,7 +23,6 @@
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
-#include "hw/virtio/vhost-user-scsi.h"
#ifdef CONFIG_VHOST_SCSI
#include "hw/virtio/vhost-scsi.h"
@@ -35,7 +34,6 @@ typedef struct VirtIOSCSIPCI VirtIOSCSIPCI;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VHostSCSIPCI VHostSCSIPCI;
-typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -220,15 +218,6 @@ struct VHostSCSIPCI {
};
#endif
-#define TYPE_VHOST_USER_SCSI_PCI "vhost-user-scsi-pci"
-#define VHOST_USER_SCSI_PCI(obj) \
- OBJECT_CHECK(VHostUserSCSIPCI, (obj), TYPE_VHOST_USER_SCSI_PCI)
-
-struct VHostUserSCSIPCI {
- VirtIOPCIProxy parent_obj;
- VHostUserSCSI vdev;
-};
-
/*
* virtio-blk-pci: This extends VirtioPCIProxy.
*/
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 09/16] virtio: split vhost scsi bits from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (7 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 08/16] virtio: split vhost user scsi " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-14 9:19 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 10/16] virtio: split virtio " Juan Quintela
` (8 subsequent siblings)
17 siblings, 1 reply; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/vhost-scsi-pci.c | 95 ++++++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 59 -----------------------
hw/virtio/virtio-pci.h | 19 --------
4 files changed, 96 insertions(+), 78 deletions(-)
create mode 100644 hw/virtio/vhost-scsi-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index f851a6f2b5..0a56946c1a 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -15,6 +15,7 @@ ifeq ($(CONFIG_PCI),y)
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
obj-$(CONFIG_VHOST_USER_BLK) += vhost-user-blk-pci.o
obj-$(CONFIG_VHOST_USER_SCSI) += vhost-user-scsi-pci.o
+obj-$(CONFIG_VHOST_SCSI) += vhost-scsi-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
diff --git a/hw/virtio/vhost-scsi-pci.c b/hw/virtio/vhost-scsi-pci.c
new file mode 100644
index 0000000000..2be2c567ea
--- /dev/null
+++ b/hw/virtio/vhost-scsi-pci.c
@@ -0,0 +1,95 @@
+/*
+ * Vhost scsi PCI bindings
+ *
+ * Copyright IBM, Corp. 2011
+ *
+ * Authors:
+ * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
+ *
+ * Changes for QEMU mainline + tcm_vhost kernel upstream:
+ * Nicholas Bellinger <nab@risingtidesystems.com>
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+
+#include "standard-headers/linux/virtio_pci.h"
+#include "hw/virtio/vhost-scsi.h"
+#include "qapi/error.h"
+#include "virtio-pci.h"
+
+typedef struct VHostSCSIPCI VHostSCSIPCI;
+
+/*
+ * vhost-scsi-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VHOST_SCSI_PCI "vhost-scsi-pci"
+#define VHOST_SCSI_PCI(obj) \
+ OBJECT_CHECK(VHostSCSIPCI, (obj), TYPE_VHOST_SCSI_PCI)
+
+struct VHostSCSIPCI {
+ VirtIOPCIProxy parent_obj;
+ VHostSCSI vdev;
+};
+
+static Property vhost_scsi_pci_properties[] = {
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
+ DEV_NVECTORS_UNSPECIFIED),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void vhost_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VHostSCSIPCI *dev = VHOST_SCSI_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+ VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
+
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = vs->conf.num_queues + 3;
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void vhost_scsi_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ k->realize = vhost_scsi_pci_realize;
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = vhost_scsi_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
+ pcidev_k->revision = 0x00;
+ pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
+}
+
+static void vhost_scsi_pci_instance_init(Object *obj)
+{
+ VHostSCSIPCI *dev = VHOST_SCSI_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VHOST_SCSI);
+ object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
+ "bootindex", &error_abort);
+}
+
+static const TypeInfo vhost_scsi_pci_info = {
+ .name = TYPE_VHOST_SCSI_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VHostSCSIPCI),
+ .instance_init = vhost_scsi_pci_instance_init,
+ .class_init = vhost_scsi_pci_class_init,
+};
+
+static void vhost_scsi_pci_register(void)
+{
+ type_register_static(&vhost_scsi_pci_info);
+}
+
+type_init(vhost_scsi_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 7c99d9385a..6c42074d37 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -2019,62 +2019,6 @@ static const TypeInfo virtio_scsi_pci_info = {
.class_init = virtio_scsi_pci_class_init,
};
-/* vhost-scsi-pci */
-
-#ifdef CONFIG_VHOST_SCSI
-static Property vhost_scsi_pci_properties[] = {
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
- DEV_NVECTORS_UNSPECIFIED),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void vhost_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VHostSCSIPCI *dev = VHOST_SCSI_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
- VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
-
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = vs->conf.num_queues + 3;
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void vhost_scsi_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- k->realize = vhost_scsi_pci_realize;
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = vhost_scsi_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
- pcidev_k->revision = 0x00;
- pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
-}
-
-static void vhost_scsi_pci_instance_init(Object *obj)
-{
- VHostSCSIPCI *dev = VHOST_SCSI_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VHOST_SCSI);
- object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
- "bootindex", &error_abort);
-}
-
-static const TypeInfo vhost_scsi_pci_info = {
- .name = TYPE_VHOST_SCSI_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VHostSCSIPCI),
- .instance_init = vhost_scsi_pci_instance_init,
- .class_init = vhost_scsi_pci_class_init,
-};
-#endif
-
/* virtio-serial-pci */
static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
@@ -2256,9 +2200,6 @@ static void virtio_pci_register_types(void)
type_register_static(&virtio_scsi_pci_info);
type_register_static(&virtio_serial_pci_info);
type_register_static(&virtio_net_pci_info);
-#ifdef CONFIG_VHOST_SCSI
- type_register_static(&vhost_scsi_pci_info);
-#endif
}
type_init(virtio_pci_register_types)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 7f06d7f331..eb7cdbad25 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -24,16 +24,11 @@
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
-#ifdef CONFIG_VHOST_SCSI
-#include "hw/virtio/vhost-scsi.h"
-#endif
-
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
typedef struct VirtIOBlkPCI VirtIOBlkPCI;
typedef struct VirtIOSCSIPCI VirtIOSCSIPCI;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
-typedef struct VHostSCSIPCI VHostSCSIPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -204,20 +199,6 @@ struct VirtIOSCSIPCI {
VirtIOSCSI vdev;
};
-#ifdef CONFIG_VHOST_SCSI
-/*
- * vhost-scsi-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VHOST_SCSI_PCI "vhost-scsi-pci"
-#define VHOST_SCSI_PCI(obj) \
- OBJECT_CHECK(VHostSCSIPCI, (obj), TYPE_VHOST_SCSI_PCI)
-
-struct VHostSCSIPCI {
- VirtIOPCIProxy parent_obj;
- VHostSCSI vdev;
-};
-#endif
-
/*
* virtio-blk-pci: This extends VirtioPCIProxy.
*/
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 10/16] virtio: split virtio scsi bits from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (8 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 09/16] virtio: split vhost " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 11/16] virtio: split virtio blk bits rom virtio-pci Juan Quintela
` (7 subsequent siblings)
17 siblings, 0 replies; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Notice that we can't still run tests with it disabled. Both cdrom-test and
drive_del-test use virtio-scsi without checking if it is enabled.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-pci.c | 69 -----------------------
hw/virtio/virtio-pci.h | 14 -----
hw/virtio/virtio-scsi-pci.c | 106 ++++++++++++++++++++++++++++++++++++
tests/Makefile.include | 2 +-
5 files changed, 108 insertions(+), 84 deletions(-)
create mode 100644 hw/virtio/virtio-scsi-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 0a56946c1a..012b6f74a7 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -21,6 +21,7 @@ obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
+obj-$(CONFIG_VIRTIO_SCSI) += virtio-scsi-pci.o
endif
endif
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 6c42074d37..debd764523 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -22,7 +22,6 @@
#include "hw/virtio/virtio-blk.h"
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
-#include "hw/virtio/virtio-scsi.h"
#include "hw/pci/pci.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
@@ -1952,73 +1951,6 @@ static const TypeInfo virtio_blk_pci_info = {
.class_init = virtio_blk_pci_class_init,
};
-/* virtio-scsi-pci */
-
-static Property virtio_scsi_pci_properties[] = {
- DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
- VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
- DEV_NVECTORS_UNSPECIFIED),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIOSCSIPCI *dev = VIRTIO_SCSI_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
- VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
- DeviceState *proxy = DEVICE(vpci_dev);
- char *bus_name;
-
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = vs->conf.num_queues + 3;
- }
-
- /*
- * For command line compatibility, this sets the virtio-scsi-device bus
- * name as before.
- */
- if (proxy->id) {
- bus_name = g_strdup_printf("%s.0", proxy->id);
- virtio_device_set_child_bus_name(VIRTIO_DEVICE(vdev), bus_name);
- g_free(bus_name);
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void virtio_scsi_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- k->realize = virtio_scsi_pci_realize;
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = virtio_scsi_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
- pcidev_k->revision = 0x00;
- pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
-}
-
-static void virtio_scsi_pci_instance_init(Object *obj)
-{
- VirtIOSCSIPCI *dev = VIRTIO_SCSI_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_SCSI);
-}
-
-static const TypeInfo virtio_scsi_pci_info = {
- .name = TYPE_VIRTIO_SCSI_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIOSCSIPCI),
- .instance_init = virtio_scsi_pci_instance_init,
- .class_init = virtio_scsi_pci_class_init,
-};
-
/* virtio-serial-pci */
static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
@@ -2197,7 +2129,6 @@ static void virtio_pci_register_types(void)
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
type_register_static(&virtio_blk_pci_info);
- type_register_static(&virtio_scsi_pci_info);
type_register_static(&virtio_serial_pci_info);
type_register_static(&virtio_net_pci_info);
}
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index eb7cdbad25..5e13d87110 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -19,14 +19,12 @@
#include "hw/virtio/virtio-blk.h"
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
-#include "hw/virtio/virtio-scsi.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
typedef struct VirtIOBlkPCI VirtIOBlkPCI;
-typedef struct VirtIOSCSIPCI VirtIOSCSIPCI;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
@@ -187,18 +185,6 @@ static inline void virtio_pci_disable_modern(VirtIOPCIProxy *proxy)
proxy->disable_modern = true;
}
-/*
- * virtio-scsi-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_SCSI_PCI "virtio-scsi-pci"
-#define VIRTIO_SCSI_PCI(obj) \
- OBJECT_CHECK(VirtIOSCSIPCI, (obj), TYPE_VIRTIO_SCSI_PCI)
-
-struct VirtIOSCSIPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOSCSI vdev;
-};
-
/*
* virtio-blk-pci: This extends VirtioPCIProxy.
*/
diff --git a/hw/virtio/virtio-scsi-pci.c b/hw/virtio/virtio-scsi-pci.c
new file mode 100644
index 0000000000..bc45b1bc32
--- /dev/null
+++ b/hw/virtio/virtio-scsi-pci.c
@@ -0,0 +1,106 @@
+/*
+ * Virtio scsi PCI Bindings
+ *
+ * Copyright IBM, Corp. 2007
+ * Copyright (c) 2009 CodeSourcery
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paul Brook <paul@codesourcery.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version. See the COPYING file in the
+ * top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include "hw/virtio/virtio-scsi.h"
+#include "virtio-pci.h"
+
+typedef struct VirtIOSCSIPCI VirtIOSCSIPCI;
+
+/*
+ * virtio-scsi-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_SCSI_PCI "virtio-scsi-pci"
+#define VIRTIO_SCSI_PCI(obj) \
+ OBJECT_CHECK(VirtIOSCSIPCI, (obj), TYPE_VIRTIO_SCSI_PCI)
+
+struct VirtIOSCSIPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOSCSI vdev;
+};
+
+static Property virtio_scsi_pci_properties[] = {
+ DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
+ VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
+ DEV_NVECTORS_UNSPECIFIED),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIOSCSIPCI *dev = VIRTIO_SCSI_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+ VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
+ DeviceState *proxy = DEVICE(vpci_dev);
+ char *bus_name;
+
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = vs->conf.num_queues + 3;
+ }
+
+ /*
+ * For command line compatibility, this sets the virtio-scsi-device bus
+ * name as before.
+ */
+ if (proxy->id) {
+ bus_name = g_strdup_printf("%s.0", proxy->id);
+ virtio_device_set_child_bus_name(VIRTIO_DEVICE(vdev), bus_name);
+ g_free(bus_name);
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void virtio_scsi_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ k->realize = virtio_scsi_pci_realize;
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = virtio_scsi_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
+ pcidev_k->revision = 0x00;
+ pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
+}
+
+static void virtio_scsi_pci_instance_init(Object *obj)
+{
+ VirtIOSCSIPCI *dev = VIRTIO_SCSI_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_SCSI);
+}
+
+static const TypeInfo virtio_scsi_pci_info = {
+ .name = TYPE_VIRTIO_SCSI_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIOSCSIPCI),
+ .instance_init = virtio_scsi_pci_instance_init,
+ .class_init = virtio_scsi_pci_class_init,
+};
+
+
+static void virtio_scsi_pci_register(void)
+{
+ type_register_static(&virtio_scsi_pci_info);
+}
+
+type_init(virtio_scsi_pci_register)
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 90d33bb058..0889b86d67 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -149,7 +149,7 @@ check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
-check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_SCSI) += tests/virtio-scsi-test$(EXESUF)
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
check-qtest-virtio-$(CONFIG_VIRTIO_9P) += tests/virtio-9p-test$(EXESUF)
endif
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 11/16] virtio: split virtio blk bits rom virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (9 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 10/16] virtio: split virtio " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-18 13:12 ` Stefan Hajnoczi
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 12/16] virtio: split virtio net " Juan Quintela
` (6 subsequent siblings)
17 siblings, 1 reply; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-blk-pci.c | 97 ++++++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 59 -----------------------
hw/virtio/virtio-pci.h | 14 ------
tests/Makefile.include | 4 +-
5 files changed, 100 insertions(+), 75 deletions(-)
create mode 100644 hw/virtio/virtio-blk-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 012b6f74a7..557ad06231 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -22,6 +22,7 @@ obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
obj-$(CONFIG_VIRTIO_SCSI) += virtio-scsi-pci.o
+obj-$(CONFIG_VIRTIO_BLK) += virtio-blk-pci.o
endif
endif
diff --git a/hw/virtio/virtio-blk-pci.c b/hw/virtio/virtio-blk-pci.c
new file mode 100644
index 0000000000..c1c41ad3f0
--- /dev/null
+++ b/hw/virtio/virtio-blk-pci.c
@@ -0,0 +1,97 @@
+/*
+ * Virtio blk PCI Bindings
+ *
+ * Copyright IBM, Corp. 2007
+ * Copyright (c) 2009 CodeSourcery
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paul Brook <paul@codesourcery.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2. See
+ * the COPYING file in the top-level directory.
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+
+#include "hw/virtio/virtio-blk.h"
+#include "virtio-pci.h"
+#include "qapi/error.h"
+
+typedef struct VirtIOBlkPCI VirtIOBlkPCI;
+
+/*
+ * virtio-blk-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_BLK_PCI "virtio-blk-pci"
+#define VIRTIO_BLK_PCI(obj) \
+ OBJECT_CHECK(VirtIOBlkPCI, (obj), TYPE_VIRTIO_BLK_PCI)
+
+struct VirtIOBlkPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOBlock vdev;
+};
+
+static Property virtio_blk_pci_properties[] = {
+ DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
+ DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
+ VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
+ DEV_NVECTORS_UNSPECIFIED),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIOBlkPCI *dev = VIRTIO_BLK_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = dev->vdev.conf.num_queues + 1;
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void virtio_blk_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = virtio_blk_pci_properties;
+ k->realize = virtio_blk_pci_realize;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BLOCK;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
+}
+
+static void virtio_blk_pci_instance_init(Object *obj)
+{
+ VirtIOBlkPCI *dev = VIRTIO_BLK_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_BLK);
+ object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
+ "bootindex", &error_abort);
+}
+
+static const TypeInfo virtio_blk_pci_info = {
+ .name = TYPE_VIRTIO_BLK_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIOBlkPCI),
+ .instance_init = virtio_blk_pci_instance_init,
+ .class_init = virtio_blk_pci_class_init,
+};
+static void virtio_blk_pci_register(void)
+{
+ type_register_static(&virtio_blk_pci_info);
+}
+
+type_init(virtio_blk_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index debd764523..4fe71a56c8 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -19,7 +19,6 @@
#include "standard-headers/linux/virtio_pci.h"
#include "hw/virtio/virtio.h"
-#include "hw/virtio/virtio-blk.h"
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/pci/pci.h"
@@ -1894,63 +1893,6 @@ static const TypeInfo virtio_pci_info = {
},
};
-/* virtio-blk-pci */
-
-static Property virtio_blk_pci_properties[] = {
- DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
- DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
- VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
- DEV_NVECTORS_UNSPECIFIED),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIOBlkPCI *dev = VIRTIO_BLK_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = dev->vdev.conf.num_queues + 1;
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void virtio_blk_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = virtio_blk_pci_properties;
- k->realize = virtio_blk_pci_realize;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BLOCK;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
-}
-
-static void virtio_blk_pci_instance_init(Object *obj)
-{
- VirtIOBlkPCI *dev = VIRTIO_BLK_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_BLK);
- object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
- "bootindex", &error_abort);
-}
-
-static const TypeInfo virtio_blk_pci_info = {
- .name = TYPE_VIRTIO_BLK_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIOBlkPCI),
- .instance_init = virtio_blk_pci_instance_init,
- .class_init = virtio_blk_pci_class_init,
-};
-
/* virtio-serial-pci */
static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
@@ -2128,7 +2070,6 @@ static void virtio_pci_register_types(void)
{
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
- type_register_static(&virtio_blk_pci_info);
type_register_static(&virtio_serial_pci_info);
type_register_static(&virtio_net_pci_info);
}
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 5e13d87110..3c9bbf9287 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -16,7 +16,6 @@
#define QEMU_VIRTIO_PCI_H
#include "hw/pci/msi.h"
-#include "hw/virtio/virtio-blk.h"
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-bus.h"
@@ -24,7 +23,6 @@
#include "hw/virtio/virtio-crypto.h"
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
-typedef struct VirtIOBlkPCI VirtIOBlkPCI;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
@@ -185,18 +183,6 @@ static inline void virtio_pci_disable_modern(VirtIOPCIProxy *proxy)
proxy->disable_modern = true;
}
-/*
- * virtio-blk-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_BLK_PCI "virtio-blk-pci"
-#define VIRTIO_BLK_PCI(obj) \
- OBJECT_CHECK(VirtIOBlkPCI, (obj), TYPE_VIRTIO_BLK_PCI)
-
-struct VirtIOBlkPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOBlock vdev;
-};
-
/*
* virtio-serial-pci: This extends VirtioPCIProxy.
*/
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 0889b86d67..78d7cf2fde 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -147,7 +147,7 @@ check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
-check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_BLK) += tests/virtio-blk-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_SCSI) += tests/virtio-scsi-test$(EXESUF)
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
@@ -278,7 +278,7 @@ check-qtest-arm-y += tests/tmp105-test$(EXESUF)
check-qtest-arm-y += tests/pca9552-test$(EXESUF)
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
-check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
+check-qtest-arm-$(CONFIG_VIRTIO_BLK) += tests/virtio-blk-test$(EXESUF)
check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
check-qtest-arm-y += tests/boot-serial-test$(EXESUF)
check-qtest-arm-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 12/16] virtio: split virtio net bits rom virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (10 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 11/16] virtio: split virtio blk bits rom virtio-pci Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2019-01-02 4:44 ` Wei Xu
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 13/16] virtio: split virtio serial " Juan Quintela
` (5 subsequent siblings)
17 siblings, 1 reply; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-net-pci.c | 96 ++++++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 57 ----------------------
hw/virtio/virtio-pci.h | 14 ------
tests/Makefile.include | 2 +-
5 files changed, 98 insertions(+), 72 deletions(-)
create mode 100644 hw/virtio/virtio-net-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 557ad06231..4c31acb017 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -23,6 +23,7 @@ obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
obj-$(CONFIG_VIRTIO_SCSI) += virtio-scsi-pci.o
obj-$(CONFIG_VIRTIO_BLK) += virtio-blk-pci.o
+obj-$(CONFIG_VIRTIO_NET) += virtio-net-pci.o
endif
endif
diff --git a/hw/virtio/virtio-net-pci.c b/hw/virtio/virtio-net-pci.c
new file mode 100644
index 0000000000..0b676f078d
--- /dev/null
+++ b/hw/virtio/virtio-net-pci.c
@@ -0,0 +1,96 @@
+/*
+ * Virtio net PCI Bindings
+ *
+ * Copyright IBM, Corp. 2007
+ * Copyright (c) 2009 CodeSourcery
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paul Brook <paul@codesourcery.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2. See
+ * the COPYING file in the top-level directory.
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+
+#include "hw/virtio/virtio-net.h"
+#include "virtio-pci.h"
+#include "qapi/error.h"
+
+typedef struct VirtIONetPCI VirtIONetPCI;
+
+/*
+ * virtio-net-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_NET_PCI "virtio-net-pci"
+#define VIRTIO_NET_PCI(obj) \
+ OBJECT_CHECK(VirtIONetPCI, (obj), TYPE_VIRTIO_NET_PCI)
+
+struct VirtIONetPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIONet vdev;
+};
+
+static Property virtio_net_properties[] = {
+ DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
+ VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 3),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_net_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ DeviceState *qdev = DEVICE(vpci_dev);
+ VirtIONetPCI *dev = VIRTIO_NET_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ virtio_net_set_netclient_name(&dev->vdev, qdev->id,
+ object_get_typename(OBJECT(qdev)));
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void virtio_net_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
+ VirtioPCIClass *vpciklass = VIRTIO_PCI_CLASS(klass);
+
+ k->romfile = "efi-virtio.rom";
+ k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ k->device_id = PCI_DEVICE_ID_VIRTIO_NET;
+ k->revision = VIRTIO_PCI_ABI_VERSION;
+ k->class_id = PCI_CLASS_NETWORK_ETHERNET;
+ set_bit(DEVICE_CATEGORY_NETWORK, dc->categories);
+ dc->props = virtio_net_properties;
+ vpciklass->realize = virtio_net_pci_realize;
+}
+
+static void virtio_net_pci_instance_init(Object *obj)
+{
+ VirtIONetPCI *dev = VIRTIO_NET_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_NET);
+ object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
+ "bootindex", &error_abort);
+}
+
+static const TypeInfo virtio_net_pci_info = {
+ .name = TYPE_VIRTIO_NET_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIONetPCI),
+ .instance_init = virtio_net_pci_instance_init,
+ .class_init = virtio_net_pci_class_init,
+};
+
+static void virtio_net_pci_register(void)
+{
+ type_register_static(&virtio_net_pci_info);
+}
+
+type_init(virtio_net_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 4fe71a56c8..cb03bfa597 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -19,7 +19,6 @@
#include "standard-headers/linux/virtio_pci.h"
#include "hw/virtio/virtio.h"
-#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/pci/pci.h"
#include "qapi/error.h"
@@ -1966,61 +1965,6 @@ static const TypeInfo virtio_serial_pci_info = {
.class_init = virtio_serial_pci_class_init,
};
-/* virtio-net-pci */
-
-static Property virtio_net_properties[] = {
- DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
- VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 3),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_net_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- DeviceState *qdev = DEVICE(vpci_dev);
- VirtIONetPCI *dev = VIRTIO_NET_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- virtio_net_set_netclient_name(&dev->vdev, qdev->id,
- object_get_typename(OBJECT(qdev)));
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void virtio_net_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
- VirtioPCIClass *vpciklass = VIRTIO_PCI_CLASS(klass);
-
- k->romfile = "efi-virtio.rom";
- k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- k->device_id = PCI_DEVICE_ID_VIRTIO_NET;
- k->revision = VIRTIO_PCI_ABI_VERSION;
- k->class_id = PCI_CLASS_NETWORK_ETHERNET;
- set_bit(DEVICE_CATEGORY_NETWORK, dc->categories);
- dc->props = virtio_net_properties;
- vpciklass->realize = virtio_net_pci_realize;
-}
-
-static void virtio_net_pci_instance_init(Object *obj)
-{
- VirtIONetPCI *dev = VIRTIO_NET_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_NET);
- object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
- "bootindex", &error_abort);
-}
-
-static const TypeInfo virtio_net_pci_info = {
- .name = TYPE_VIRTIO_NET_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIONetPCI),
- .instance_init = virtio_net_pci_instance_init,
- .class_init = virtio_net_pci_class_init,
-};
-
/* virtio-pci-bus */
static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
@@ -2071,7 +2015,6 @@ static void virtio_pci_register_types(void)
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
type_register_static(&virtio_serial_pci_info);
- type_register_static(&virtio_net_pci_info);
}
type_init(virtio_pci_register_types)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 3c9bbf9287..ab0c7907e4 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -16,7 +16,6 @@
#define QEMU_VIRTIO_PCI_H
#include "hw/pci/msi.h"
-#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-gpu.h"
@@ -24,7 +23,6 @@
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
-typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -195,18 +193,6 @@ struct VirtIOSerialPCI {
VirtIOSerial vdev;
};
-/*
- * virtio-net-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_NET_PCI "virtio-net-pci"
-#define VIRTIO_NET_PCI(obj) \
- OBJECT_CHECK(VirtIONetPCI, (obj), TYPE_VIRTIO_NET_PCI)
-
-struct VirtIONetPCI {
- VirtIOPCIProxy parent_obj;
- VirtIONet vdev;
-};
-
/*
* virtio-input-pci: This extends VirtioPCIProxy.
*/
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 78d7cf2fde..770df63d88 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -145,7 +145,7 @@ check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
-check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_NET) += tests/virtio-net-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_BLK) += tests/virtio-blk-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 13/16] virtio: split virtio serial bits rom virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (11 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 12/16] virtio: split virtio net " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 14/16] virtio: split virtio gpu bits rom virtio-pci.h Juan Quintela
` (4 subsequent siblings)
17 siblings, 0 replies; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Virtio console and qga tests also depend on CONFIG_VIRTIO_SERIAL.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-pci.c | 75 -----------------------
hw/virtio/virtio-pci.h | 14 -----
hw/virtio/virtio-serial-pci.c | 112 ++++++++++++++++++++++++++++++++++
tests/Makefile.include | 6 +-
5 files changed, 116 insertions(+), 92 deletions(-)
create mode 100644 hw/virtio/virtio-serial-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 4c31acb017..ea7913d532 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -24,6 +24,7 @@ obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
obj-$(CONFIG_VIRTIO_SCSI) += virtio-scsi-pci.o
obj-$(CONFIG_VIRTIO_BLK) += virtio-blk-pci.o
obj-$(CONFIG_VIRTIO_NET) += virtio-net-pci.o
+obj-$(CONFIG_VIRTIO_SERIAL) += virtio-serial-pci.o
endif
endif
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index cb03bfa597..5a54b144a5 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -19,7 +19,6 @@
#include "standard-headers/linux/virtio_pci.h"
#include "hw/virtio/virtio.h"
-#include "hw/virtio/virtio-serial.h"
#include "hw/pci/pci.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
@@ -1892,79 +1891,6 @@ static const TypeInfo virtio_pci_info = {
},
};
-/* virtio-serial-pci */
-
-static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIOSerialPCI *dev = VIRTIO_SERIAL_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
- DeviceState *proxy = DEVICE(vpci_dev);
- char *bus_name;
-
- if (vpci_dev->class_code != PCI_CLASS_COMMUNICATION_OTHER &&
- vpci_dev->class_code != PCI_CLASS_DISPLAY_OTHER && /* qemu 0.10 */
- vpci_dev->class_code != PCI_CLASS_OTHERS) { /* qemu-kvm */
- vpci_dev->class_code = PCI_CLASS_COMMUNICATION_OTHER;
- }
-
- /* backwards-compatibility with machines that were created with
- DEV_NVECTORS_UNSPECIFIED */
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = dev->vdev.serial.max_virtserial_ports + 1;
- }
-
- /*
- * For command line compatibility, this sets the virtio-serial-device bus
- * name as before.
- */
- if (proxy->id) {
- bus_name = g_strdup_printf("%s.0", proxy->id);
- virtio_device_set_child_bus_name(VIRTIO_DEVICE(vdev), bus_name);
- g_free(bus_name);
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static Property virtio_serial_pci_properties[] = {
- DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
- VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
- DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_serial_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- k->realize = virtio_serial_pci_realize;
- set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
- dc->props = virtio_serial_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_CONSOLE;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = PCI_CLASS_COMMUNICATION_OTHER;
-}
-
-static void virtio_serial_pci_instance_init(Object *obj)
-{
- VirtIOSerialPCI *dev = VIRTIO_SERIAL_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_SERIAL);
-}
-
-static const TypeInfo virtio_serial_pci_info = {
- .name = TYPE_VIRTIO_SERIAL_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIOSerialPCI),
- .instance_init = virtio_serial_pci_instance_init,
- .class_init = virtio_serial_pci_class_init,
-};
-
/* virtio-pci-bus */
static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
@@ -2014,7 +1940,6 @@ static void virtio_pci_register_types(void)
{
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
- type_register_static(&virtio_serial_pci_info);
}
type_init(virtio_pci_register_types)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index ab0c7907e4..59016d553b 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -16,13 +16,11 @@
#define QEMU_VIRTIO_PCI_H
#include "hw/pci/msi.h"
-#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
-typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -181,18 +179,6 @@ static inline void virtio_pci_disable_modern(VirtIOPCIProxy *proxy)
proxy->disable_modern = true;
}
-/*
- * virtio-serial-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_SERIAL_PCI "virtio-serial-pci"
-#define VIRTIO_SERIAL_PCI(obj) \
- OBJECT_CHECK(VirtIOSerialPCI, (obj), TYPE_VIRTIO_SERIAL_PCI)
-
-struct VirtIOSerialPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOSerial vdev;
-};
-
/*
* virtio-input-pci: This extends VirtioPCIProxy.
*/
diff --git a/hw/virtio/virtio-serial-pci.c b/hw/virtio/virtio-serial-pci.c
new file mode 100644
index 0000000000..acb23427ac
--- /dev/null
+++ b/hw/virtio/virtio-serial-pci.c
@@ -0,0 +1,112 @@
+/*
+ * Virtio serial PCI Bindings
+ *
+ * Copyright IBM, Corp. 2007
+ * Copyright (c) 2009 CodeSourcery
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paul Brook <paul@codesourcery.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2. See
+ * the COPYING file in the top-level directory.
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+
+#include "hw/virtio/virtio-serial.h"
+#include "virtio-pci.h"
+
+typedef struct VirtIOSerialPCI VirtIOSerialPCI;
+
+/*
+ * virtio-serial-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_SERIAL_PCI "virtio-serial-pci"
+#define VIRTIO_SERIAL_PCI(obj) \
+ OBJECT_CHECK(VirtIOSerialPCI, (obj), TYPE_VIRTIO_SERIAL_PCI)
+
+struct VirtIOSerialPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOSerial vdev;
+};
+
+static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIOSerialPCI *dev = VIRTIO_SERIAL_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+ DeviceState *proxy = DEVICE(vpci_dev);
+ char *bus_name;
+
+ if (vpci_dev->class_code != PCI_CLASS_COMMUNICATION_OTHER &&
+ vpci_dev->class_code != PCI_CLASS_DISPLAY_OTHER && /* qemu 0.10 */
+ vpci_dev->class_code != PCI_CLASS_OTHERS) { /* qemu-kvm */
+ vpci_dev->class_code = PCI_CLASS_COMMUNICATION_OTHER;
+ }
+
+ /* backwards-compatibility with machines that were created with
+ DEV_NVECTORS_UNSPECIFIED */
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = dev->vdev.serial.max_virtserial_ports + 1;
+ }
+
+ /*
+ * For command line compatibility, this sets the virtio-serial-device bus
+ * name as before.
+ */
+ if (proxy->id) {
+ bus_name = g_strdup_printf("%s.0", proxy->id);
+ virtio_device_set_child_bus_name(VIRTIO_DEVICE(vdev), bus_name);
+ g_free(bus_name);
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static Property virtio_serial_pci_properties[] = {
+ DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
+ VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
+ DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_serial_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ k->realize = virtio_serial_pci_realize;
+ set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
+ dc->props = virtio_serial_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_CONSOLE;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = PCI_CLASS_COMMUNICATION_OTHER;
+}
+
+static void virtio_serial_pci_instance_init(Object *obj)
+{
+ VirtIOSerialPCI *dev = VIRTIO_SERIAL_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_SERIAL);
+}
+
+static const TypeInfo virtio_serial_pci_info = {
+ .name = TYPE_VIRTIO_SERIAL_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIOSerialPCI),
+ .instance_init = virtio_serial_pci_instance_init,
+ .class_init = virtio_serial_pci_class_init,
+};
+static void virtio_serial_pci_register(void)
+{
+ type_register_static(&virtio_serial_pci_info);
+}
+
+type_init(virtio_serial_pci_register)
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 770df63d88..5a3f805ecb 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -107,7 +107,7 @@ check-unit-y += tests/test-crypto-secret$(EXESUF)
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
ifneq (,$(findstring qemu-ga,$(TOOLS)))
-check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF)
+check-unit-$(land,$(CONFIG_LINUX),$(CONFIG_VIRTIO_SERIAL)) += tests/test-qga$(EXESUF)
endif
check-unit-y += tests/test-timed-average$(EXESUF)
check-unit-y += tests/test-util-sockets$(EXESUF)
@@ -143,7 +143,7 @@ check-qtest-generic-y += tests/cdrom-test$(EXESUF)
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
-check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
+check-qtest-virtioserial-$(CONFIG_VIRTIO_SERIAL) += tests/virtio-console-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_NET) += tests/virtio-net-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
@@ -153,7 +153,7 @@ check-qtest-virtio-$(CONFIG_VIRTIO_SCSI) += tests/virtio-scsi-test$(EXESUF)
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
check-qtest-virtio-$(CONFIG_VIRTIO_9P) += tests/virtio-9p-test$(EXESUF)
endif
-check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_SERIAL) += tests/virtio-serial-test$(EXESUF)
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
check-qtest-pci-y += tests/e1000-test$(EXESUF)
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 14/16] virtio: split virtio gpu bits rom virtio-pci.h
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (12 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 13/16] virtio: split virtio serial " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-14 9:22 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 15/16] virtio: split virtio crypto " Juan Quintela
` (3 subsequent siblings)
17 siblings, 1 reply; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/display/virtio-gpu-pci.c | 14 ++++++++++++++
hw/display/virtio-vga.c | 1 +
hw/virtio/virtio-pci.h | 14 --------------
3 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/hw/display/virtio-gpu-pci.c b/hw/display/virtio-gpu-pci.c
index cece4aa495..fa126cf3e4 100644
--- a/hw/display/virtio-gpu-pci.c
+++ b/hw/display/virtio-gpu-pci.c
@@ -19,6 +19,20 @@
#include "hw/virtio/virtio-pci.h"
#include "hw/virtio/virtio-gpu.h"
+typedef struct VirtIOGPUPCI VirtIOGPUPCI;
+
+/*
+ * virtio-gpu-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_GPU_PCI "virtio-gpu-pci"
+#define VIRTIO_GPU_PCI(obj) \
+ OBJECT_CHECK(VirtIOGPUPCI, (obj), TYPE_VIRTIO_GPU_PCI)
+
+struct VirtIOGPUPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOGPU vdev;
+};
+
static Property virtio_gpu_pci_properties[] = {
DEFINE_VIRTIO_GPU_PCI_PROPERTIES(VirtIOPCIProxy),
DEFINE_PROP_END_OF_LIST(),
diff --git a/hw/display/virtio-vga.c b/hw/display/virtio-vga.c
index ab2e369b28..797994cf00 100644
--- a/hw/display/virtio-vga.c
+++ b/hw/display/virtio-vga.c
@@ -3,6 +3,7 @@
#include "hw/pci/pci.h"
#include "vga_int.h"
#include "hw/virtio/virtio-pci.h"
+#include "hw/virtio/virtio-gpu.h"
#include "qapi/error.h"
/*
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 59016d553b..91981b39f9 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -17,11 +17,9 @@
#include "hw/pci/msi.h"
#include "hw/virtio/virtio-bus.h"
-#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
-typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
/* virtio-pci-bus */
@@ -184,18 +182,6 @@ static inline void virtio_pci_disable_modern(VirtIOPCIProxy *proxy)
*/
#define TYPE_VIRTIO_INPUT_PCI "virtio-input-pci"
-/*
- * virtio-gpu-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_GPU_PCI "virtio-gpu-pci"
-#define VIRTIO_GPU_PCI(obj) \
- OBJECT_CHECK(VirtIOGPUPCI, (obj), TYPE_VIRTIO_GPU_PCI)
-
-struct VirtIOGPUPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOGPU vdev;
-};
-
/*
* virtio-crypto-pci: This extends VirtioPCIProxy.
*/
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 15/16] virtio: split virtio crypto bits rom virtio-pci.h
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (13 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 14/16] virtio: split virtio gpu bits rom virtio-pci.h Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-14 9:43 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work Juan Quintela
` (2 subsequent siblings)
17 siblings, 1 reply; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/virtio-crypto-pci.c | 14 ++++++++++++++
hw/virtio/virtio-pci.h | 14 --------------
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/hw/virtio/virtio-crypto-pci.c b/hw/virtio/virtio-crypto-pci.c
index bf64996e48..1b242d3037 100644
--- a/hw/virtio/virtio-crypto-pci.c
+++ b/hw/virtio/virtio-crypto-pci.c
@@ -19,6 +19,20 @@
#include "hw/virtio/virtio-crypto.h"
#include "qapi/error.h"
+typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
+
+/*
+ * virtio-crypto-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_CRYPTO_PCI "virtio-crypto-pci"
+#define VIRTIO_CRYPTO_PCI(obj) \
+ OBJECT_CHECK(VirtIOCryptoPCI, (obj), TYPE_VIRTIO_CRYPTO_PCI)
+
+struct VirtIOCryptoPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOCrypto vdev;
+};
+
static Property virtio_crypto_pci_properties[] = {
DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 91981b39f9..bead9e5fa5 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -17,10 +17,8 @@
#include "hw/pci/msi.h"
#include "hw/virtio/virtio-bus.h"
-#include "hw/virtio/virtio-crypto.h"
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
-typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
/* virtio-pci-bus */
@@ -182,18 +180,6 @@ static inline void virtio_pci_disable_modern(VirtIOPCIProxy *proxy)
*/
#define TYPE_VIRTIO_INPUT_PCI "virtio-input-pci"
-/*
- * virtio-crypto-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_CRYPTO_PCI "virtio-crypto-pci"
-#define VIRTIO_CRYPTO_PCI(obj) \
- OBJECT_CHECK(VirtIOCryptoPCI, (obj), TYPE_VIRTIO_CRYPTO_PCI)
-
-struct VirtIOCryptoPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOCrypto vdev;
-};
-
/* Virtio ABI version, if we increment this, we break the guest driver. */
#define VIRTIO_PCI_ABI_VERSION 0
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH v3 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (14 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 15/16] virtio: split virtio crypto " Juan Quintela
@ 2018-12-13 21:00 ` Juan Quintela
2018-12-14 9:02 ` Thomas Huth
2018-12-28 16:09 ` Greg Kurz
2018-12-14 7:07 ` [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Gonglei (Arei)
2018-12-16 20:07 ` Michael S. Tsirkin
17 siblings, 2 replies; 40+ messages in thread
From: Juan Quintela @ 2018-12-13 21:00 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann, Gonglei, Juan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
default-configs/virtio.mak | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
index 5ae4a61018..ecb4420e74 100644
--- a/default-configs/virtio.mak
+++ b/default-configs/virtio.mak
@@ -1,7 +1,7 @@
CONFIG_VHOST_USER_SCSI=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
CONFIG_VHOST_USER_BLK=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
CONFIG_VIRTIO=y
-CONFIG_VIRTIO_9P=y
+CONFIG_VIRTIO_9P=$(CONFIG_VIRTFS)
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_CRYPTO=y
--
2.19.2
^ permalink raw reply related [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (15 preceding siblings ...)
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work Juan Quintela
@ 2018-12-14 7:07 ` Gonglei (Arei)
2018-12-14 12:53 ` Michael S. Tsirkin
2018-12-16 20:07 ` Michael S. Tsirkin
17 siblings, 1 reply; 40+ messages in thread
From: Gonglei (Arei) @ 2018-12-14 7:07 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: Michael S. Tsirkin, Thomas Huth, Gerd Hoffmann
> -----Original Message-----
> From: Juan Quintela [mailto:quintela@redhat.com]
> Sent: Friday, December 14, 2018 5:01 AM
> To: qemu-devel@nongnu.org
> Cc: Michael S. Tsirkin <mst@redhat.com>; Thomas Huth <thuth@redhat.com>;
> Gerd Hoffmann <kraxel@redhat.com>; Gonglei (Arei)
> <arei.gonglei@huawei.com>; Juan Quintela <quintela@redhat.com>
> Subject: [PATCH v3 00/16] Virtio devices split from virtio-pci
>
> Hi
>
> v3:
> - rebase to master
> - only compile them if CONFIG_PCI is set (thomas)
>
> Please review.
>
> Later, Juan.
>
> V2:
>
> - Rebase on top of master
>
> Please review.
>
> Later, Juan.
>
> [v1]
> From previous verision (in the middle of make check tests):
> - split also the bits of virtio-pci.h (mst suggestion)
> - add gpu, crypt and gpg bits
> - more cleanups
> - fix all the copyrights (the ones not changed have been there
> foverever)
> - be consistent with naming, vhost-* or virtio-*
>
> Please review, Juan.
>
> Juan Quintela (16):
> virtio: split vhost vsock bits from virtio-pci
> virtio: split virtio input host bits from virtio-pci
> virtio: split virtio input bits from virtio-pci
> virtio: split virtio rng bits from virtio-pci
> virtio: split virtio balloon bits from virtio-pci
> virtio: split virtio 9p bits from virtio-pci
> virtio: split vhost user blk bits from virtio-pci
> virtio: split vhost user scsi bits from virtio-pci
> virtio: split vhost scsi bits from virtio-pci
> virtio: split virtio scsi bits from virtio-pci
> virtio: split virtio blk bits rom virtio-pci
> virtio: split virtio net bits rom virtio-pci
> virtio: split virtio serial bits rom virtio-pci
> virtio: split virtio gpu bits rom virtio-pci.h
> virtio: split virtio crypto bits rom virtio-pci.h
> virtio: virtio 9p really requires CONFIG_VIRTFS to work
>
> default-configs/virtio.mak | 3 +-
> hw/display/virtio-gpu-pci.c | 14 +
> hw/display/virtio-vga.c | 1 +
> hw/virtio/Makefile.objs | 15 +
> hw/virtio/vhost-scsi-pci.c | 95 ++++
> hw/virtio/vhost-user-blk-pci.c | 101 ++++
> hw/virtio/vhost-user-scsi-pci.c | 101 ++++
> hw/virtio/vhost-vsock-pci.c | 82 ++++
> hw/virtio/virtio-9p-pci.c | 86 ++++
> hw/virtio/virtio-balloon-pci.c | 94 ++++
> hw/virtio/virtio-blk-pci.c | 97 ++++
> hw/virtio/virtio-crypto-pci.c | 14 +
> hw/virtio/virtio-input-host-pci.c | 45 ++
> hw/virtio/virtio-input-pci.c | 154 ++++++
> hw/virtio/virtio-net-pci.c | 96 ++++
> hw/virtio/virtio-pci.c | 783 ------------------------------
> hw/virtio/virtio-pci.h | 234 ---------
> hw/virtio/virtio-rng-pci.c | 86 ++++
> hw/virtio/virtio-scsi-pci.c | 106 ++++
> hw/virtio/virtio-serial-pci.c | 112 +++++
> tests/Makefile.include | 20 +-
> 21 files changed, 1311 insertions(+), 1028 deletions(-)
> create mode 100644 hw/virtio/vhost-scsi-pci.c
> create mode 100644 hw/virtio/vhost-user-blk-pci.c
> create mode 100644 hw/virtio/vhost-user-scsi-pci.c
> create mode 100644 hw/virtio/vhost-vsock-pci.c
> create mode 100644 hw/virtio/virtio-9p-pci.c
> create mode 100644 hw/virtio/virtio-balloon-pci.c
> create mode 100644 hw/virtio/virtio-blk-pci.c
> create mode 100644 hw/virtio/virtio-input-host-pci.c
> create mode 100644 hw/virtio/virtio-input-pci.c
> create mode 100644 hw/virtio/virtio-net-pci.c
> create mode 100644 hw/virtio/virtio-rng-pci.c
> create mode 100644 hw/virtio/virtio-scsi-pci.c
> create mode 100644 hw/virtio/virtio-serial-pci.c
>
> --
> 2.19.2
For series:
Reviewed-by: Gonglei <arei.gonglei@huawei.com>
Thanks,
-Gonglei
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 01/16] virtio: split vhost vsock bits from virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 01/16] virtio: split vhost vsock bits " Juan Quintela
@ 2018-12-14 8:02 ` Thomas Huth
2018-12-18 13:12 ` Stefan Hajnoczi
1 sibling, 0 replies; 40+ messages in thread
From: Thomas Huth @ 2018-12-14 8:02 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: Michael S. Tsirkin, Gerd Hoffmann, Gonglei
On 2018-12-13 22:00, Juan Quintela wrote:
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
>
> ---
>
> Updated copyright info
> Also split virtio-pci.h bits
> ---
> hw/virtio/Makefile.objs | 3 ++
> hw/virtio/vhost-vsock-pci.c | 82 +++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 51 -----------------------
> hw/virtio/virtio-pci.h | 18 --------
> 4 files changed, 85 insertions(+), 69 deletions(-)
> create mode 100644 hw/virtio/vhost-vsock-pci.c
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 02/16] virtio: split virtio input host bits from virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 02/16] virtio: split virtio input host " Juan Quintela
@ 2018-12-14 8:29 ` Thomas Huth
0 siblings, 0 replies; 40+ messages in thread
From: Thomas Huth @ 2018-12-14 8:29 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: Michael S. Tsirkin, Gerd Hoffmann, Gonglei
On 2018-12-13 22:00, Juan Quintela wrote:
> For consistency with other devices, rename
> virtio_host_{initfn,pci_info} to virtio_input_host_{initfn,info}.
>
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> default-configs/virtio.mak | 1 +
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-input-host-pci.c | 45 +++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 20 --------------
> hw/virtio/virtio-pci.h | 14 ----------
> 5 files changed, 47 insertions(+), 34 deletions(-)
> create mode 100644 hw/virtio/virtio-input-host-pci.c
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 03/16] virtio: split virtio input bits from virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 03/16] virtio: split virtio input " Juan Quintela
@ 2018-12-14 8:47 ` Thomas Huth
0 siblings, 0 replies; 40+ messages in thread
From: Thomas Huth @ 2018-12-14 8:47 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: Michael S. Tsirkin, Gerd Hoffmann, Gonglei
On 2018-12-13 22:00, Juan Quintela wrote:
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-input-pci.c | 154 +++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 113 -------------------------
> hw/virtio/virtio-pci.h | 22 -----
> 4 files changed, 155 insertions(+), 135 deletions(-)
> create mode 100644 hw/virtio/virtio-input-pci.c
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 04/16] virtio: split virtio rng bits from virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 04/16] virtio: split virtio rng " Juan Quintela
@ 2018-12-14 8:50 ` Thomas Huth
0 siblings, 0 replies; 40+ messages in thread
From: Thomas Huth @ 2018-12-14 8:50 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: Michael S. Tsirkin, Gerd Hoffmann, Gonglei
On 2018-12-13 22:00, Juan Quintela wrote:
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 06/16] virtio: split virtio 9p bits from virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 06/16] virtio: split virtio 9p " Juan Quintela
@ 2018-12-14 8:59 ` Thomas Huth
2018-12-28 16:09 ` Greg Kurz
1 sibling, 0 replies; 40+ messages in thread
From: Thomas Huth @ 2018-12-14 8:59 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: Michael S. Tsirkin, Gerd Hoffmann, Gonglei
On 2018-12-13 22:00, Juan Quintela wrote:
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
>
> ---
>
> Also disable virtio9p test (lvivier)
[...]
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index dd7c882cc5..90d33bb058 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -151,7 +151,7 @@ check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
> check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
> check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
> ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
I guess you could remove the CONFIG_VIRTIO in above line now, since
CONFIG_VIRTIO_9P should always be disabled when CONFIG_VIRTIO is
disabled, too. ... anyway, does not hurt to keep it here either.
> -check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
> +check-qtest-virtio-$(CONFIG_VIRTIO_9P) += tests/virtio-9p-test$(EXESUF)
> endif
> check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
> check-qtest-virtio-y += $(check-qtest-virtioserial-y)
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work Juan Quintela
@ 2018-12-14 9:02 ` Thomas Huth
2018-12-28 16:09 ` Greg Kurz
1 sibling, 0 replies; 40+ messages in thread
From: Thomas Huth @ 2018-12-14 9:02 UTC (permalink / raw)
To: Juan Quintela, qemu-devel
Cc: Michael S. Tsirkin, Gerd Hoffmann, Gonglei, Greg Kurz
On 2018-12-13 22:00, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> default-configs/virtio.mak | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
> index 5ae4a61018..ecb4420e74 100644
> --- a/default-configs/virtio.mak
> +++ b/default-configs/virtio.mak
> @@ -1,7 +1,7 @@
> CONFIG_VHOST_USER_SCSI=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
> CONFIG_VHOST_USER_BLK=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
> CONFIG_VIRTIO=y
> -CONFIG_VIRTIO_9P=y
> +CONFIG_VIRTIO_9P=$(CONFIG_VIRTFS)
> CONFIG_VIRTIO_BALLOON=y
> CONFIG_VIRTIO_BLK=y
> CONFIG_VIRTIO_CRYPTO=y
>
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 08/16] virtio: split vhost user scsi bits from virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 08/16] virtio: split vhost user scsi " Juan Quintela
@ 2018-12-14 9:14 ` Thomas Huth
2018-12-14 15:09 ` Felipe Franciosi
0 siblings, 1 reply; 40+ messages in thread
From: Thomas Huth @ 2018-12-14 9:14 UTC (permalink / raw)
To: Juan Quintela, qemu-devel, Felipe Franciosi
Cc: Michael S. Tsirkin, Gerd Hoffmann, Gonglei
On 2018-12-13 22:00, Juan Quintela wrote:
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/vhost-user-scsi-pci.c | 101 ++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 58 ------------------
> hw/virtio/virtio-pci.h | 11 ----
> 4 files changed, 102 insertions(+), 69 deletions(-)
> create mode 100644 hw/virtio/vhost-user-scsi-pci.c
>
> diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
> index 35b7698446..f851a6f2b5 100644
> --- a/hw/virtio/Makefile.objs
> +++ b/hw/virtio/Makefile.objs
> @@ -14,6 +14,7 @@ obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
> ifeq ($(CONFIG_PCI),y)
> obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
> obj-$(CONFIG_VHOST_USER_BLK) += vhost-user-blk-pci.o
> +obj-$(CONFIG_VHOST_USER_SCSI) += vhost-user-scsi-pci.o
> obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
> obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
> obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
> diff --git a/hw/virtio/vhost-user-scsi-pci.c b/hw/virtio/vhost-user-scsi-pci.c
> new file mode 100644
> index 0000000000..5baec9c356
> --- /dev/null
> +++ b/hw/virtio/vhost-user-scsi-pci.c
> @@ -0,0 +1,101 @@
> +/*
> + * Vhost user scsi PCI Bindings
> + *
> + * Copyright (c) 2016 Nutanix Inc. All rights reserved.
> + *
> + * Author:
> + * Felipe Franciosi <felipe@nutanix.com>
> + *
> + * This work is largely based on the "vhost-scsi" implementation by:
> + * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> + * Nicholas Bellinger <nab@risingtidesystems.com>
> + *
> + * This work is licensed under the terms of the GNU LGPL, version 2 or later.
> + * See the COPYING.LIB file in the top-level directory.
Not sure whether this should be LGPL (since hw/scsi/vhost-user-scsi.c is
LGPL, too) or GPLv2+ (since the original code in the file
hw/virtio/virtio-pci.c is GPLv2+) ... Felipe, any preferences?
NB: "LGPL, version 2" is also inaccurate. According to our COPYING.LIB
file which is referenced in the comment, we are using version 2.1 ...
> + */
> +
> +#include "qemu/osdep.h"
> +
> +#include "standard-headers/linux/virtio_pci.h"
> +#include "hw/virtio/vhost-user-scsi.h"
> +#include "hw/virtio/virtio.h"
> +#include "hw/virtio/virtio-scsi.h"
> +#include "hw/pci/pci.h"
> +#include "qapi/error.h"
> +#include "qemu/error-report.h"
> +#include "hw/pci/msi.h"
> +#include "hw/pci/msix.h"
> +#include "hw/loader.h"
> +#include "sysemu/kvm.h"
> +#include "virtio-pci.h"
> +
> +typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
> +
> +#define TYPE_VHOST_USER_SCSI_PCI "vhost-user-scsi-pci"
> +#define VHOST_USER_SCSI_PCI(obj) \
> + OBJECT_CHECK(VHostUserSCSIPCI, (obj), TYPE_VHOST_USER_SCSI_PCI)
> +
> +struct VHostUserSCSIPCI {
> + VirtIOPCIProxy parent_obj;
> + VHostUserSCSI vdev;
> +};
> +
> +static Property vhost_user_scsi_pci_properties[] = {
> + DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
> + DEV_NVECTORS_UNSPECIFIED),
> + DEFINE_PROP_END_OF_LIST(),
> +};
> +
> +static void vhost_user_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> +{
> + VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(vpci_dev);
> + DeviceState *vdev = DEVICE(&dev->vdev);
> + VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
> +
> + if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
> + vpci_dev->nvectors = vs->conf.num_queues + 3;
> + }
> +
> + qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
> + object_property_set_bool(OBJECT(vdev), true, "realized", errp);
> +}
> +
> +static void vhost_user_scsi_pci_class_init(ObjectClass *klass, void *data)
> +{
> + DeviceClass *dc = DEVICE_CLASS(klass);
> + VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
> + PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
> + k->realize = vhost_user_scsi_pci_realize;
> + set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> + dc->props = vhost_user_scsi_pci_properties;
> + pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
> + pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
> + pcidev_k->revision = 0x00;
> + pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
> +}
> +
> +static void vhost_user_scsi_pci_instance_init(Object *obj)
> +{
> + VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(obj);
> +
> + virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
> + TYPE_VHOST_USER_SCSI);
> + object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
> + "bootindex", &error_abort);
> +}
> +
> +static const TypeInfo vhost_user_scsi_pci_info = {
> + .name = TYPE_VHOST_USER_SCSI_PCI,
> + .parent = TYPE_VIRTIO_PCI,
> + .instance_size = sizeof(VHostUserSCSIPCI),
> + .instance_init = vhost_user_scsi_pci_instance_init,
> + .class_init = vhost_user_scsi_pci_class_init,
> +};
> +
> +static void vhost_user_scsi_pci_register(void)
> +{
> + type_register_static(&vhost_user_scsi_pci_info);
> +}
> +
> +type_init(vhost_user_scsi_pci_register)
> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
> index e9c562b1c0..7c99d9385a 100644
> --- a/hw/virtio/virtio-pci.c
> +++ b/hw/virtio/virtio-pci.c
> @@ -2075,61 +2075,6 @@ static const TypeInfo vhost_scsi_pci_info = {
> };
> #endif
>
> -#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
> -/* vhost-user-scsi-pci */
> -static Property vhost_user_scsi_pci_properties[] = {
> - DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
> - DEV_NVECTORS_UNSPECIFIED),
> - DEFINE_PROP_END_OF_LIST(),
> -};
> -
> -static void vhost_user_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> -{
> - VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(vpci_dev);
> - DeviceState *vdev = DEVICE(&dev->vdev);
> - VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
> -
> - if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
> - vpci_dev->nvectors = vs->conf.num_queues + 3;
> - }
> -
> - qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
> - object_property_set_bool(OBJECT(vdev), true, "realized", errp);
> -}
> -
> -static void vhost_user_scsi_pci_class_init(ObjectClass *klass, void *data)
> -{
> - DeviceClass *dc = DEVICE_CLASS(klass);
> - VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
> - PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
> - k->realize = vhost_user_scsi_pci_realize;
> - set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> - dc->props = vhost_user_scsi_pci_properties;
> - pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
> - pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
> - pcidev_k->revision = 0x00;
> - pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
> -}
> -
> -static void vhost_user_scsi_pci_instance_init(Object *obj)
> -{
> - VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(obj);
> -
> - virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
> - TYPE_VHOST_USER_SCSI);
> - object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
> - "bootindex", &error_abort);
> -}
> -
> -static const TypeInfo vhost_user_scsi_pci_info = {
> - .name = TYPE_VHOST_USER_SCSI_PCI,
> - .parent = TYPE_VIRTIO_PCI,
> - .instance_size = sizeof(VHostUserSCSIPCI),
> - .instance_init = vhost_user_scsi_pci_instance_init,
> - .class_init = vhost_user_scsi_pci_class_init,
> -};
> -#endif
> -
> /* virtio-serial-pci */
>
> static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> @@ -2314,9 +2259,6 @@ static void virtio_pci_register_types(void)
> #ifdef CONFIG_VHOST_SCSI
> type_register_static(&vhost_scsi_pci_info);
> #endif
> -#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
> - type_register_static(&vhost_user_scsi_pci_info);
> -#endif
> }
>
> type_init(virtio_pci_register_types)
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 09/16] virtio: split vhost scsi bits from virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 09/16] virtio: split vhost " Juan Quintela
@ 2018-12-14 9:19 ` Thomas Huth
2019-01-02 10:10 ` Stefan Hajnoczi
0 siblings, 1 reply; 40+ messages in thread
From: Thomas Huth @ 2018-12-14 9:19 UTC (permalink / raw)
To: Juan Quintela, qemu-devel, Stefan Hajnoczi, Nicholas Bellinger
Cc: Michael S. Tsirkin, Gerd Hoffmann, Gonglei
On 2018-12-13 22:00, Juan Quintela wrote:
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/vhost-scsi-pci.c | 95 ++++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 59 -----------------------
> hw/virtio/virtio-pci.h | 19 --------
> 4 files changed, 96 insertions(+), 78 deletions(-)
> create mode 100644 hw/virtio/vhost-scsi-pci.c
>
> diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
> index f851a6f2b5..0a56946c1a 100644
> --- a/hw/virtio/Makefile.objs
> +++ b/hw/virtio/Makefile.objs
> @@ -15,6 +15,7 @@ ifeq ($(CONFIG_PCI),y)
> obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
> obj-$(CONFIG_VHOST_USER_BLK) += vhost-user-blk-pci.o
> obj-$(CONFIG_VHOST_USER_SCSI) += vhost-user-scsi-pci.o
> +obj-$(CONFIG_VHOST_SCSI) += vhost-scsi-pci.o
> obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
> obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
> obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
> diff --git a/hw/virtio/vhost-scsi-pci.c b/hw/virtio/vhost-scsi-pci.c
> new file mode 100644
> index 0000000000..2be2c567ea
> --- /dev/null
> +++ b/hw/virtio/vhost-scsi-pci.c
> @@ -0,0 +1,95 @@
> +/*
> + * Vhost scsi PCI bindings
> + *
> + * Copyright IBM, Corp. 2011
> + *
> + * Authors:
> + * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> + *
> + * Changes for QEMU mainline + tcm_vhost kernel upstream:
> + * Nicholas Bellinger <nab@risingtidesystems.com>
> + *
> + * This work is licensed under the terms of the GNU LGPL, version 2 or later.
> + * See the COPYING.LIB file in the top-level directory.
Let's double-check: Stefan, Nicholas, should this file be LGPLv2.1+
(like hw/scsi/vhost-scsi.c) or rather GPLv2+ (like hw/virtio/virtio-pci.c) ?
Thomas
> + */
> +
> +#include "qemu/osdep.h"
> +
> +#include "standard-headers/linux/virtio_pci.h"
> +#include "hw/virtio/vhost-scsi.h"
> +#include "qapi/error.h"
> +#include "virtio-pci.h"
> +
> +typedef struct VHostSCSIPCI VHostSCSIPCI;
> +
> +/*
> + * vhost-scsi-pci: This extends VirtioPCIProxy.
> + */
> +#define TYPE_VHOST_SCSI_PCI "vhost-scsi-pci"
> +#define VHOST_SCSI_PCI(obj) \
> + OBJECT_CHECK(VHostSCSIPCI, (obj), TYPE_VHOST_SCSI_PCI)
> +
> +struct VHostSCSIPCI {
> + VirtIOPCIProxy parent_obj;
> + VHostSCSI vdev;
> +};
> +
> +static Property vhost_scsi_pci_properties[] = {
> + DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
> + DEV_NVECTORS_UNSPECIFIED),
> + DEFINE_PROP_END_OF_LIST(),
> +};
> +
> +static void vhost_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> +{
> + VHostSCSIPCI *dev = VHOST_SCSI_PCI(vpci_dev);
> + DeviceState *vdev = DEVICE(&dev->vdev);
> + VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
> +
> + if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
> + vpci_dev->nvectors = vs->conf.num_queues + 3;
> + }
> +
> + qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
> + object_property_set_bool(OBJECT(vdev), true, "realized", errp);
> +}
> +
> +static void vhost_scsi_pci_class_init(ObjectClass *klass, void *data)
> +{
> + DeviceClass *dc = DEVICE_CLASS(klass);
> + VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
> + PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
> + k->realize = vhost_scsi_pci_realize;
> + set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> + dc->props = vhost_scsi_pci_properties;
> + pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
> + pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
> + pcidev_k->revision = 0x00;
> + pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
> +}
> +
> +static void vhost_scsi_pci_instance_init(Object *obj)
> +{
> + VHostSCSIPCI *dev = VHOST_SCSI_PCI(obj);
> +
> + virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
> + TYPE_VHOST_SCSI);
> + object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
> + "bootindex", &error_abort);
> +}
> +
> +static const TypeInfo vhost_scsi_pci_info = {
> + .name = TYPE_VHOST_SCSI_PCI,
> + .parent = TYPE_VIRTIO_PCI,
> + .instance_size = sizeof(VHostSCSIPCI),
> + .instance_init = vhost_scsi_pci_instance_init,
> + .class_init = vhost_scsi_pci_class_init,
> +};
> +
> +static void vhost_scsi_pci_register(void)
> +{
> + type_register_static(&vhost_scsi_pci_info);
> +}
> +
> +type_init(vhost_scsi_pci_register)
> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
> index 7c99d9385a..6c42074d37 100644
> --- a/hw/virtio/virtio-pci.c
> +++ b/hw/virtio/virtio-pci.c
> @@ -2019,62 +2019,6 @@ static const TypeInfo virtio_scsi_pci_info = {
> .class_init = virtio_scsi_pci_class_init,
> };
>
> -/* vhost-scsi-pci */
> -
> -#ifdef CONFIG_VHOST_SCSI
> -static Property vhost_scsi_pci_properties[] = {
> - DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
> - DEV_NVECTORS_UNSPECIFIED),
> - DEFINE_PROP_END_OF_LIST(),
> -};
> -
> -static void vhost_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> -{
> - VHostSCSIPCI *dev = VHOST_SCSI_PCI(vpci_dev);
> - DeviceState *vdev = DEVICE(&dev->vdev);
> - VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
> -
> - if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
> - vpci_dev->nvectors = vs->conf.num_queues + 3;
> - }
> -
> - qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
> - object_property_set_bool(OBJECT(vdev), true, "realized", errp);
> -}
> -
> -static void vhost_scsi_pci_class_init(ObjectClass *klass, void *data)
> -{
> - DeviceClass *dc = DEVICE_CLASS(klass);
> - VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
> - PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
> - k->realize = vhost_scsi_pci_realize;
> - set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> - dc->props = vhost_scsi_pci_properties;
> - pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
> - pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
> - pcidev_k->revision = 0x00;
> - pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
> -}
> -
> -static void vhost_scsi_pci_instance_init(Object *obj)
> -{
> - VHostSCSIPCI *dev = VHOST_SCSI_PCI(obj);
> -
> - virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
> - TYPE_VHOST_SCSI);
> - object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
> - "bootindex", &error_abort);
> -}
> -
> -static const TypeInfo vhost_scsi_pci_info = {
> - .name = TYPE_VHOST_SCSI_PCI,
> - .parent = TYPE_VIRTIO_PCI,
> - .instance_size = sizeof(VHostSCSIPCI),
> - .instance_init = vhost_scsi_pci_instance_init,
> - .class_init = vhost_scsi_pci_class_init,
> -};
> -#endif
> -
> /* virtio-serial-pci */
>
> static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> @@ -2256,9 +2200,6 @@ static void virtio_pci_register_types(void)
> type_register_static(&virtio_scsi_pci_info);
> type_register_static(&virtio_serial_pci_info);
> type_register_static(&virtio_net_pci_info);
> -#ifdef CONFIG_VHOST_SCSI
> - type_register_static(&vhost_scsi_pci_info);
> -#endif
> }
>
> type_init(virtio_pci_register_types)
> diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
> index 7f06d7f331..eb7cdbad25 100644
> --- a/hw/virtio/virtio-pci.h
> +++ b/hw/virtio/virtio-pci.h
> @@ -24,16 +24,11 @@
> #include "hw/virtio/virtio-gpu.h"
> #include "hw/virtio/virtio-crypto.h"
>
> -#ifdef CONFIG_VHOST_SCSI
> -#include "hw/virtio/vhost-scsi.h"
> -#endif
> -
> typedef struct VirtIOPCIProxy VirtIOPCIProxy;
> typedef struct VirtIOBlkPCI VirtIOBlkPCI;
> typedef struct VirtIOSCSIPCI VirtIOSCSIPCI;
> typedef struct VirtIOSerialPCI VirtIOSerialPCI;
> typedef struct VirtIONetPCI VirtIONetPCI;
> -typedef struct VHostSCSIPCI VHostSCSIPCI;
> typedef struct VirtIOGPUPCI VirtIOGPUPCI;
> typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
>
> @@ -204,20 +199,6 @@ struct VirtIOSCSIPCI {
> VirtIOSCSI vdev;
> };
>
> -#ifdef CONFIG_VHOST_SCSI
> -/*
> - * vhost-scsi-pci: This extends VirtioPCIProxy.
> - */
> -#define TYPE_VHOST_SCSI_PCI "vhost-scsi-pci"
> -#define VHOST_SCSI_PCI(obj) \
> - OBJECT_CHECK(VHostSCSIPCI, (obj), TYPE_VHOST_SCSI_PCI)
> -
> -struct VHostSCSIPCI {
> - VirtIOPCIProxy parent_obj;
> - VHostSCSI vdev;
> -};
> -#endif
> -
> /*
> * virtio-blk-pci: This extends VirtioPCIProxy.
> */
>
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 14/16] virtio: split virtio gpu bits rom virtio-pci.h
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 14/16] virtio: split virtio gpu bits rom virtio-pci.h Juan Quintela
@ 2018-12-14 9:22 ` Thomas Huth
0 siblings, 0 replies; 40+ messages in thread
From: Thomas Huth @ 2018-12-14 9:22 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: Michael S. Tsirkin, Gerd Hoffmann, Gonglei
On 2018-12-13 22:00, Juan Quintela wrote:
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/display/virtio-gpu-pci.c | 14 ++++++++++++++
> hw/display/virtio-vga.c | 1 +
> hw/virtio/virtio-pci.h | 14 --------------
> 3 files changed, 15 insertions(+), 14 deletions(-)
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 15/16] virtio: split virtio crypto bits rom virtio-pci.h
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 15/16] virtio: split virtio crypto " Juan Quintela
@ 2018-12-14 9:43 ` Thomas Huth
0 siblings, 0 replies; 40+ messages in thread
From: Thomas Huth @ 2018-12-14 9:43 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: Michael S. Tsirkin, Gerd Hoffmann, Gonglei
On 2018-12-13 22:00, Juan Quintela wrote:
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/virtio-crypto-pci.c | 14 ++++++++++++++
> hw/virtio/virtio-pci.h | 14 --------------
> 2 files changed, 14 insertions(+), 14 deletions(-)
>
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci
2018-12-14 7:07 ` [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Gonglei (Arei)
@ 2018-12-14 12:53 ` Michael S. Tsirkin
2018-12-15 5:27 ` Gonglei (Arei)
0 siblings, 1 reply; 40+ messages in thread
From: Michael S. Tsirkin @ 2018-12-14 12:53 UTC (permalink / raw)
To: Gonglei (Arei); +Cc: Juan Quintela, qemu-devel, Thomas Huth, Gerd Hoffmann
On Fri, Dec 14, 2018 at 07:07:44AM +0000, Gonglei (Arei) wrote:
>
> > -----Original Message-----
> > From: Juan Quintela [mailto:quintela@redhat.com]
> > Sent: Friday, December 14, 2018 5:01 AM
> > To: qemu-devel@nongnu.org
> > Cc: Michael S. Tsirkin <mst@redhat.com>; Thomas Huth <thuth@redhat.com>;
> > Gerd Hoffmann <kraxel@redhat.com>; Gonglei (Arei)
> > <arei.gonglei@huawei.com>; Juan Quintela <quintela@redhat.com>
> > Subject: [PATCH v3 00/16] Virtio devices split from virtio-pci
> >
> > Hi
> >
> > v3:
> > - rebase to master
> > - only compile them if CONFIG_PCI is set (thomas)
> >
> > Please review.
> >
> > Later, Juan.
> >
> > V2:
> >
> > - Rebase on top of master
> >
> > Please review.
> >
> > Later, Juan.
> >
> > [v1]
> > From previous verision (in the middle of make check tests):
> > - split also the bits of virtio-pci.h (mst suggestion)
> > - add gpu, crypt and gpg bits
> > - more cleanups
> > - fix all the copyrights (the ones not changed have been there
> > foverever)
> > - be consistent with naming, vhost-* or virtio-*
> >
> > Please review, Juan.
> >
> > Juan Quintela (16):
> > virtio: split vhost vsock bits from virtio-pci
> > virtio: split virtio input host bits from virtio-pci
> > virtio: split virtio input bits from virtio-pci
> > virtio: split virtio rng bits from virtio-pci
> > virtio: split virtio balloon bits from virtio-pci
> > virtio: split virtio 9p bits from virtio-pci
> > virtio: split vhost user blk bits from virtio-pci
> > virtio: split vhost user scsi bits from virtio-pci
> > virtio: split vhost scsi bits from virtio-pci
> > virtio: split virtio scsi bits from virtio-pci
> > virtio: split virtio blk bits rom virtio-pci
> > virtio: split virtio net bits rom virtio-pci
> > virtio: split virtio serial bits rom virtio-pci
> > virtio: split virtio gpu bits rom virtio-pci.h
> > virtio: split virtio crypto bits rom virtio-pci.h
> > virtio: virtio 9p really requires CONFIG_VIRTFS to work
> >
> > default-configs/virtio.mak | 3 +-
> > hw/display/virtio-gpu-pci.c | 14 +
> > hw/display/virtio-vga.c | 1 +
> > hw/virtio/Makefile.objs | 15 +
> > hw/virtio/vhost-scsi-pci.c | 95 ++++
> > hw/virtio/vhost-user-blk-pci.c | 101 ++++
> > hw/virtio/vhost-user-scsi-pci.c | 101 ++++
> > hw/virtio/vhost-vsock-pci.c | 82 ++++
> > hw/virtio/virtio-9p-pci.c | 86 ++++
> > hw/virtio/virtio-balloon-pci.c | 94 ++++
> > hw/virtio/virtio-blk-pci.c | 97 ++++
> > hw/virtio/virtio-crypto-pci.c | 14 +
> > hw/virtio/virtio-input-host-pci.c | 45 ++
> > hw/virtio/virtio-input-pci.c | 154 ++++++
> > hw/virtio/virtio-net-pci.c | 96 ++++
> > hw/virtio/virtio-pci.c | 783 ------------------------------
> > hw/virtio/virtio-pci.h | 234 ---------
> > hw/virtio/virtio-rng-pci.c | 86 ++++
> > hw/virtio/virtio-scsi-pci.c | 106 ++++
> > hw/virtio/virtio-serial-pci.c | 112 +++++
> > tests/Makefile.include | 20 +-
> > 21 files changed, 1311 insertions(+), 1028 deletions(-)
> > create mode 100644 hw/virtio/vhost-scsi-pci.c
> > create mode 100644 hw/virtio/vhost-user-blk-pci.c
> > create mode 100644 hw/virtio/vhost-user-scsi-pci.c
> > create mode 100644 hw/virtio/vhost-vsock-pci.c
> > create mode 100644 hw/virtio/virtio-9p-pci.c
> > create mode 100644 hw/virtio/virtio-balloon-pci.c
> > create mode 100644 hw/virtio/virtio-blk-pci.c
> > create mode 100644 hw/virtio/virtio-input-host-pci.c
> > create mode 100644 hw/virtio/virtio-input-pci.c
> > create mode 100644 hw/virtio/virtio-net-pci.c
> > create mode 100644 hw/virtio/virtio-rng-pci.c
> > create mode 100644 hw/virtio/virtio-scsi-pci.c
> > create mode 100644 hw/virtio/virtio-serial-pci.c
> >
> > --
> > 2.19.2
>
> For series:
> Reviewed-by: Gonglei <arei.gonglei@huawei.com>
>
>
> Thanks,
> -Gonglei
Thanks!
Can you pls align Reviewed-by: tag at the 1st column in the future?
Makes it easier to apply the tag.
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 08/16] virtio: split vhost user scsi bits from virtio-pci
2018-12-14 9:14 ` Thomas Huth
@ 2018-12-14 15:09 ` Felipe Franciosi
0 siblings, 0 replies; 40+ messages in thread
From: Felipe Franciosi @ 2018-12-14 15:09 UTC (permalink / raw)
To: Thomas Huth
Cc: Juan Quintela, qemu-devel, Michael S. Tsirkin, Gerd Hoffmann, Gonglei
> On Dec 14, 2018, at 9:14 AM, Thomas Huth <thuth@redhat.com> wrote:
>
> On 2018-12-13 22:00, Juan Quintela wrote:
>> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> ---
>> hw/virtio/Makefile.objs | 1 +
>> hw/virtio/vhost-user-scsi-pci.c | 101 ++++++++++++++++++++++++++++++++
>> hw/virtio/virtio-pci.c | 58 ------------------
>> hw/virtio/virtio-pci.h | 11 ----
>> 4 files changed, 102 insertions(+), 69 deletions(-)
>> create mode 100644 hw/virtio/vhost-user-scsi-pci.c
>>
>> diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
>> index 35b7698446..f851a6f2b5 100644
>> --- a/hw/virtio/Makefile.objs
>> +++ b/hw/virtio/Makefile.objs
>> @@ -14,6 +14,7 @@ obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
>> ifeq ($(CONFIG_PCI),y)
>> obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
>> obj-$(CONFIG_VHOST_USER_BLK) += vhost-user-blk-pci.o
>> +obj-$(CONFIG_VHOST_USER_SCSI) += vhost-user-scsi-pci.o
>> obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
>> obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
>> obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
>> diff --git a/hw/virtio/vhost-user-scsi-pci.c b/hw/virtio/vhost-user-scsi-pci.c
>> new file mode 100644
>> index 0000000000..5baec9c356
>> --- /dev/null
>> +++ b/hw/virtio/vhost-user-scsi-pci.c
>> @@ -0,0 +1,101 @@
>> +/*
>> + * Vhost user scsi PCI Bindings
>> + *
>> + * Copyright (c) 2016 Nutanix Inc. All rights reserved.
>> + *
>> + * Author:
>> + * Felipe Franciosi <felipe@nutanix.com>
>> + *
>> + * This work is largely based on the "vhost-scsi" implementation by:
>> + * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
>> + * Nicholas Bellinger <nab@risingtidesystems.com>
>> + *
>> + * This work is licensed under the terms of the GNU LGPL, version 2 or later.
>> + * See the COPYING.LIB file in the top-level directory.
>
> Not sure whether this should be LGPL (since hw/scsi/vhost-user-scsi.c is
> LGPL, too) or GPLv2+ (since the original code in the file
> hw/virtio/virtio-pci.c is GPLv2+) ... Felipe, any preferences?
I have absolutely no preferences and am perfectly happy with however it is decided to take this forward.
Cheers,
Felipe
>
> NB: "LGPL, version 2" is also inaccurate. According to our COPYING.LIB
> file which is referenced in the comment, we are using version 2.1 ...
>
>> + */
>> +
>> +#include "qemu/osdep.h"
>> +
>> +#include "standard-headers/linux/virtio_pci.h"
>> +#include "hw/virtio/vhost-user-scsi.h"
>> +#include "hw/virtio/virtio.h"
>> +#include "hw/virtio/virtio-scsi.h"
>> +#include "hw/pci/pci.h"
>> +#include "qapi/error.h"
>> +#include "qemu/error-report.h"
>> +#include "hw/pci/msi.h"
>> +#include "hw/pci/msix.h"
>> +#include "hw/loader.h"
>> +#include "sysemu/kvm.h"
>> +#include "virtio-pci.h"
>> +
>> +typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
>> +
>> +#define TYPE_VHOST_USER_SCSI_PCI "vhost-user-scsi-pci"
>> +#define VHOST_USER_SCSI_PCI(obj) \
>> + OBJECT_CHECK(VHostUserSCSIPCI, (obj), TYPE_VHOST_USER_SCSI_PCI)
>> +
>> +struct VHostUserSCSIPCI {
>> + VirtIOPCIProxy parent_obj;
>> + VHostUserSCSI vdev;
>> +};
>> +
>> +static Property vhost_user_scsi_pci_properties[] = {
>> + DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
>> + DEV_NVECTORS_UNSPECIFIED),
>> + DEFINE_PROP_END_OF_LIST(),
>> +};
>> +
>> +static void vhost_user_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
>> +{
>> + VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(vpci_dev);
>> + DeviceState *vdev = DEVICE(&dev->vdev);
>> + VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
>> +
>> + if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
>> + vpci_dev->nvectors = vs->conf.num_queues + 3;
>> + }
>> +
>> + qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
>> + object_property_set_bool(OBJECT(vdev), true, "realized", errp);
>> +}
>> +
>> +static void vhost_user_scsi_pci_class_init(ObjectClass *klass, void *data)
>> +{
>> + DeviceClass *dc = DEVICE_CLASS(klass);
>> + VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
>> + PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
>> + k->realize = vhost_user_scsi_pci_realize;
>> + set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
>> + dc->props = vhost_user_scsi_pci_properties;
>> + pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
>> + pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
>> + pcidev_k->revision = 0x00;
>> + pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
>> +}
>> +
>> +static void vhost_user_scsi_pci_instance_init(Object *obj)
>> +{
>> + VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(obj);
>> +
>> + virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
>> + TYPE_VHOST_USER_SCSI);
>> + object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
>> + "bootindex", &error_abort);
>> +}
>> +
>> +static const TypeInfo vhost_user_scsi_pci_info = {
>> + .name = TYPE_VHOST_USER_SCSI_PCI,
>> + .parent = TYPE_VIRTIO_PCI,
>> + .instance_size = sizeof(VHostUserSCSIPCI),
>> + .instance_init = vhost_user_scsi_pci_instance_init,
>> + .class_init = vhost_user_scsi_pci_class_init,
>> +};
>> +
>> +static void vhost_user_scsi_pci_register(void)
>> +{
>> + type_register_static(&vhost_user_scsi_pci_info);
>> +}
>> +
>> +type_init(vhost_user_scsi_pci_register)
>> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
>> index e9c562b1c0..7c99d9385a 100644
>> --- a/hw/virtio/virtio-pci.c
>> +++ b/hw/virtio/virtio-pci.c
>> @@ -2075,61 +2075,6 @@ static const TypeInfo vhost_scsi_pci_info = {
>> };
>> #endif
>>
>> -#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
>> -/* vhost-user-scsi-pci */
>> -static Property vhost_user_scsi_pci_properties[] = {
>> - DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
>> - DEV_NVECTORS_UNSPECIFIED),
>> - DEFINE_PROP_END_OF_LIST(),
>> -};
>> -
>> -static void vhost_user_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
>> -{
>> - VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(vpci_dev);
>> - DeviceState *vdev = DEVICE(&dev->vdev);
>> - VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
>> -
>> - if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
>> - vpci_dev->nvectors = vs->conf.num_queues + 3;
>> - }
>> -
>> - qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
>> - object_property_set_bool(OBJECT(vdev), true, "realized", errp);
>> -}
>> -
>> -static void vhost_user_scsi_pci_class_init(ObjectClass *klass, void *data)
>> -{
>> - DeviceClass *dc = DEVICE_CLASS(klass);
>> - VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
>> - PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
>> - k->realize = vhost_user_scsi_pci_realize;
>> - set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
>> - dc->props = vhost_user_scsi_pci_properties;
>> - pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
>> - pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
>> - pcidev_k->revision = 0x00;
>> - pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
>> -}
>> -
>> -static void vhost_user_scsi_pci_instance_init(Object *obj)
>> -{
>> - VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(obj);
>> -
>> - virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
>> - TYPE_VHOST_USER_SCSI);
>> - object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
>> - "bootindex", &error_abort);
>> -}
>> -
>> -static const TypeInfo vhost_user_scsi_pci_info = {
>> - .name = TYPE_VHOST_USER_SCSI_PCI,
>> - .parent = TYPE_VIRTIO_PCI,
>> - .instance_size = sizeof(VHostUserSCSIPCI),
>> - .instance_init = vhost_user_scsi_pci_instance_init,
>> - .class_init = vhost_user_scsi_pci_class_init,
>> -};
>> -#endif
>> -
>> /* virtio-serial-pci */
>>
>> static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
>> @@ -2314,9 +2259,6 @@ static void virtio_pci_register_types(void)
>> #ifdef CONFIG_VHOST_SCSI
>> type_register_static(&vhost_scsi_pci_info);
>> #endif
>> -#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
>> - type_register_static(&vhost_user_scsi_pci_info);
>> -#endif
>> }
>>
>> type_init(virtio_pci_register_types)
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci
2018-12-14 12:53 ` Michael S. Tsirkin
@ 2018-12-15 5:27 ` Gonglei (Arei)
0 siblings, 0 replies; 40+ messages in thread
From: Gonglei (Arei) @ 2018-12-15 5:27 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: Juan Quintela, qemu-devel, Thomas Huth, Gerd Hoffmann
> -----Original Message-----
> From: Michael S. Tsirkin [mailto:mst@redhat.com]
> Sent: Friday, December 14, 2018 8:53 PM
> To: Gonglei (Arei) <arei.gonglei@huawei.com>
> Cc: Juan Quintela <quintela@redhat.com>; qemu-devel@nongnu.org; Thomas
> Huth <thuth@redhat.com>; Gerd Hoffmann <kraxel@redhat.com>
> Subject: Re: [PATCH v3 00/16] Virtio devices split from virtio-pci
>
> On Fri, Dec 14, 2018 at 07:07:44AM +0000, Gonglei (Arei) wrote:
> >
> > > -----Original Message-----
> > > From: Juan Quintela [mailto:quintela@redhat.com]
> > > Sent: Friday, December 14, 2018 5:01 AM
> > > To: qemu-devel@nongnu.org
> > > Cc: Michael S. Tsirkin <mst@redhat.com>; Thomas Huth
> <thuth@redhat.com>;
> > > Gerd Hoffmann <kraxel@redhat.com>; Gonglei (Arei)
> > > <arei.gonglei@huawei.com>; Juan Quintela <quintela@redhat.com>
> > > Subject: [PATCH v3 00/16] Virtio devices split from virtio-pci
> > >
> > > Hi
> > >
> > > v3:
> > > - rebase to master
> > > - only compile them if CONFIG_PCI is set (thomas)
> > >
> > > Please review.
> > >
> > > Later, Juan.
> > >
> > > V2:
> > >
> > > - Rebase on top of master
> > >
> > > Please review.
> > >
> > > Later, Juan.
> > >
> > > [v1]
> > > From previous verision (in the middle of make check tests):
> > > - split also the bits of virtio-pci.h (mst suggestion)
> > > - add gpu, crypt and gpg bits
> > > - more cleanups
> > > - fix all the copyrights (the ones not changed have been there
> > > foverever)
> > > - be consistent with naming, vhost-* or virtio-*
> > >
> > > Please review, Juan.
> > >
> > > Juan Quintela (16):
> > > virtio: split vhost vsock bits from virtio-pci
> > > virtio: split virtio input host bits from virtio-pci
> > > virtio: split virtio input bits from virtio-pci
> > > virtio: split virtio rng bits from virtio-pci
> > > virtio: split virtio balloon bits from virtio-pci
> > > virtio: split virtio 9p bits from virtio-pci
> > > virtio: split vhost user blk bits from virtio-pci
> > > virtio: split vhost user scsi bits from virtio-pci
> > > virtio: split vhost scsi bits from virtio-pci
> > > virtio: split virtio scsi bits from virtio-pci
> > > virtio: split virtio blk bits rom virtio-pci
> > > virtio: split virtio net bits rom virtio-pci
> > > virtio: split virtio serial bits rom virtio-pci
> > > virtio: split virtio gpu bits rom virtio-pci.h
> > > virtio: split virtio crypto bits rom virtio-pci.h
> > > virtio: virtio 9p really requires CONFIG_VIRTFS to work
> > >
> > > default-configs/virtio.mak | 3 +-
> > > hw/display/virtio-gpu-pci.c | 14 +
> > > hw/display/virtio-vga.c | 1 +
> > > hw/virtio/Makefile.objs | 15 +
> > > hw/virtio/vhost-scsi-pci.c | 95 ++++
> > > hw/virtio/vhost-user-blk-pci.c | 101 ++++
> > > hw/virtio/vhost-user-scsi-pci.c | 101 ++++
> > > hw/virtio/vhost-vsock-pci.c | 82 ++++
> > > hw/virtio/virtio-9p-pci.c | 86 ++++
> > > hw/virtio/virtio-balloon-pci.c | 94 ++++
> > > hw/virtio/virtio-blk-pci.c | 97 ++++
> > > hw/virtio/virtio-crypto-pci.c | 14 +
> > > hw/virtio/virtio-input-host-pci.c | 45 ++
> > > hw/virtio/virtio-input-pci.c | 154 ++++++
> > > hw/virtio/virtio-net-pci.c | 96 ++++
> > > hw/virtio/virtio-pci.c | 783 ------------------------------
> > > hw/virtio/virtio-pci.h | 234 ---------
> > > hw/virtio/virtio-rng-pci.c | 86 ++++
> > > hw/virtio/virtio-scsi-pci.c | 106 ++++
> > > hw/virtio/virtio-serial-pci.c | 112 +++++
> > > tests/Makefile.include | 20 +-
> > > 21 files changed, 1311 insertions(+), 1028 deletions(-)
> > > create mode 100644 hw/virtio/vhost-scsi-pci.c
> > > create mode 100644 hw/virtio/vhost-user-blk-pci.c
> > > create mode 100644 hw/virtio/vhost-user-scsi-pci.c
> > > create mode 100644 hw/virtio/vhost-vsock-pci.c
> > > create mode 100644 hw/virtio/virtio-9p-pci.c
> > > create mode 100644 hw/virtio/virtio-balloon-pci.c
> > > create mode 100644 hw/virtio/virtio-blk-pci.c
> > > create mode 100644 hw/virtio/virtio-input-host-pci.c
> > > create mode 100644 hw/virtio/virtio-input-pci.c
> > > create mode 100644 hw/virtio/virtio-net-pci.c
> > > create mode 100644 hw/virtio/virtio-rng-pci.c
> > > create mode 100644 hw/virtio/virtio-scsi-pci.c
> > > create mode 100644 hw/virtio/virtio-serial-pci.c
> > >
> > > --
> > > 2.19.2
> >
> > For series:
> > Reviewed-by: Gonglei <arei.gonglei@huawei.com>
> >
> >
> > Thanks,
> > -Gonglei
>
> Thanks!
> Can you pls align Reviewed-by: tag at the 1st column in the future?
> Makes it easier to apply the tag.
OK, I will, thanks :)
Thanks,
-Gonglei
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
` (16 preceding siblings ...)
2018-12-14 7:07 ` [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Gonglei (Arei)
@ 2018-12-16 20:07 ` Michael S. Tsirkin
17 siblings, 0 replies; 40+ messages in thread
From: Michael S. Tsirkin @ 2018-12-16 20:07 UTC (permalink / raw)
To: Juan Quintela; +Cc: qemu-devel, Thomas Huth, Gerd Hoffmann, Gonglei
Thanks!
I'd like to apply this but there's a conflict with other stuff queued.
Could you pls rebase on top of pci in git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git
Alternatively wait until after the next pull request.
Thanks and sorry for all the churn!
On Thu, Dec 13, 2018 at 10:00:41PM +0100, Juan Quintela wrote:
> Hi
>
> v3:
> - rebase to master
> - only compile them if CONFIG_PCI is set (thomas)
>
> Please review.
>
> Later, Juan.
>
> V2:
>
> - Rebase on top of master
>
> Please review.
>
> Later, Juan.
>
> [v1]
> >From previous verision (in the middle of make check tests):
> - split also the bits of virtio-pci.h (mst suggestion)
> - add gpu, crypt and gpg bits
> - more cleanups
> - fix all the copyrights (the ones not changed have been there
> foverever)
> - be consistent with naming, vhost-* or virtio-*
>
> Please review, Juan.
>
> Juan Quintela (16):
> virtio: split vhost vsock bits from virtio-pci
> virtio: split virtio input host bits from virtio-pci
> virtio: split virtio input bits from virtio-pci
> virtio: split virtio rng bits from virtio-pci
> virtio: split virtio balloon bits from virtio-pci
> virtio: split virtio 9p bits from virtio-pci
> virtio: split vhost user blk bits from virtio-pci
> virtio: split vhost user scsi bits from virtio-pci
> virtio: split vhost scsi bits from virtio-pci
> virtio: split virtio scsi bits from virtio-pci
> virtio: split virtio blk bits rom virtio-pci
> virtio: split virtio net bits rom virtio-pci
> virtio: split virtio serial bits rom virtio-pci
> virtio: split virtio gpu bits rom virtio-pci.h
> virtio: split virtio crypto bits rom virtio-pci.h
> virtio: virtio 9p really requires CONFIG_VIRTFS to work
>
> default-configs/virtio.mak | 3 +-
> hw/display/virtio-gpu-pci.c | 14 +
> hw/display/virtio-vga.c | 1 +
> hw/virtio/Makefile.objs | 15 +
> hw/virtio/vhost-scsi-pci.c | 95 ++++
> hw/virtio/vhost-user-blk-pci.c | 101 ++++
> hw/virtio/vhost-user-scsi-pci.c | 101 ++++
> hw/virtio/vhost-vsock-pci.c | 82 ++++
> hw/virtio/virtio-9p-pci.c | 86 ++++
> hw/virtio/virtio-balloon-pci.c | 94 ++++
> hw/virtio/virtio-blk-pci.c | 97 ++++
> hw/virtio/virtio-crypto-pci.c | 14 +
> hw/virtio/virtio-input-host-pci.c | 45 ++
> hw/virtio/virtio-input-pci.c | 154 ++++++
> hw/virtio/virtio-net-pci.c | 96 ++++
> hw/virtio/virtio-pci.c | 783 ------------------------------
> hw/virtio/virtio-pci.h | 234 ---------
> hw/virtio/virtio-rng-pci.c | 86 ++++
> hw/virtio/virtio-scsi-pci.c | 106 ++++
> hw/virtio/virtio-serial-pci.c | 112 +++++
> tests/Makefile.include | 20 +-
> 21 files changed, 1311 insertions(+), 1028 deletions(-)
> create mode 100644 hw/virtio/vhost-scsi-pci.c
> create mode 100644 hw/virtio/vhost-user-blk-pci.c
> create mode 100644 hw/virtio/vhost-user-scsi-pci.c
> create mode 100644 hw/virtio/vhost-vsock-pci.c
> create mode 100644 hw/virtio/virtio-9p-pci.c
> create mode 100644 hw/virtio/virtio-balloon-pci.c
> create mode 100644 hw/virtio/virtio-blk-pci.c
> create mode 100644 hw/virtio/virtio-input-host-pci.c
> create mode 100644 hw/virtio/virtio-input-pci.c
> create mode 100644 hw/virtio/virtio-net-pci.c
> create mode 100644 hw/virtio/virtio-rng-pci.c
> create mode 100644 hw/virtio/virtio-scsi-pci.c
> create mode 100644 hw/virtio/virtio-serial-pci.c
>
> --
> 2.19.2
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 01/16] virtio: split vhost vsock bits from virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 01/16] virtio: split vhost vsock bits " Juan Quintela
2018-12-14 8:02 ` Thomas Huth
@ 2018-12-18 13:12 ` Stefan Hajnoczi
1 sibling, 0 replies; 40+ messages in thread
From: Stefan Hajnoczi @ 2018-12-18 13:12 UTC (permalink / raw)
To: Juan Quintela
Cc: qemu-devel, Thomas Huth, Gonglei, Gerd Hoffmann, Michael S. Tsirkin
[-- Attachment #1: Type: text/plain, Size: 632 bytes --]
On Thu, Dec 13, 2018 at 10:00:42PM +0100, Juan Quintela wrote:
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
>
> ---
>
> Updated copyright info
> Also split virtio-pci.h bits
> ---
> hw/virtio/Makefile.objs | 3 ++
> hw/virtio/vhost-vsock-pci.c | 82 +++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 51 -----------------------
> hw/virtio/virtio-pci.h | 18 --------
> 4 files changed, 85 insertions(+), 69 deletions(-)
> create mode 100644 hw/virtio/vhost-vsock-pci.c
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 11/16] virtio: split virtio blk bits rom virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 11/16] virtio: split virtio blk bits rom virtio-pci Juan Quintela
@ 2018-12-18 13:12 ` Stefan Hajnoczi
0 siblings, 0 replies; 40+ messages in thread
From: Stefan Hajnoczi @ 2018-12-18 13:12 UTC (permalink / raw)
To: Juan Quintela
Cc: qemu-devel, Thomas Huth, Gonglei, Gerd Hoffmann, Michael S. Tsirkin
[-- Attachment #1: Type: text/plain, Size: 625 bytes --]
On Thu, Dec 13, 2018 at 10:00:52PM +0100, Juan Quintela wrote:
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-blk-pci.c | 97 ++++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 59 -----------------------
> hw/virtio/virtio-pci.h | 14 ------
> tests/Makefile.include | 4 +-
> 5 files changed, 100 insertions(+), 75 deletions(-)
> create mode 100644 hw/virtio/virtio-blk-pci.c
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 07/16] virtio: split vhost user blk bits from virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 07/16] virtio: split vhost user blk " Juan Quintela
@ 2018-12-18 13:13 ` Stefan Hajnoczi
0 siblings, 0 replies; 40+ messages in thread
From: Stefan Hajnoczi @ 2018-12-18 13:13 UTC (permalink / raw)
To: Juan Quintela
Cc: qemu-devel, Thomas Huth, Gonglei, Gerd Hoffmann, Michael S. Tsirkin
[-- Attachment #1: Type: text/plain, Size: 603 bytes --]
On Thu, Dec 13, 2018 at 10:00:48PM +0100, Juan Quintela wrote:
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/vhost-user-blk-pci.c | 101 +++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 60 --------------------
> hw/virtio/virtio-pci.h | 18 ------
> 4 files changed, 102 insertions(+), 78 deletions(-)
> create mode 100644 hw/virtio/vhost-user-blk-pci.c
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 05/16] virtio: split virtio balloon bits from virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 05/16] virtio: split virtio balloon " Juan Quintela
@ 2018-12-20 14:27 ` Stefano Garzarella
0 siblings, 0 replies; 40+ messages in thread
From: Stefano Garzarella @ 2018-12-20 14:27 UTC (permalink / raw)
To: Juan Quintela
Cc: qemu-devel, Thomas Huth, Gonglei, Gerd Hoffmann, Michael S. Tsirkin
On Thu, Dec 13, 2018 at 10:07 PM Juan Quintela <quintela@redhat.com> wrote:
>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-balloon-pci.c | 94 ++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 58 ---------------------
> hw/virtio/virtio-pci.h | 14 -----
> tests/Makefile.include | 2 +-
> 5 files changed, 96 insertions(+), 73 deletions(-)
> create mode 100644 hw/virtio/virtio-balloon-pci.c
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 06/16] virtio: split virtio 9p bits from virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 06/16] virtio: split virtio 9p " Juan Quintela
2018-12-14 8:59 ` Thomas Huth
@ 2018-12-28 16:09 ` Greg Kurz
1 sibling, 0 replies; 40+ messages in thread
From: Greg Kurz @ 2018-12-28 16:09 UTC (permalink / raw)
To: Juan Quintela
Cc: qemu-devel, Thomas Huth, Gonglei, Gerd Hoffmann, Michael S. Tsirkin
On Thu, 13 Dec 2018 22:00:47 +0100
Juan Quintela <quintela@redhat.com> wrote:
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
>
> ---
>
Acked-by: Greg Kurz <groug@kaod.org>
> Also disable virtio9p test (lvivier)
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-9p-pci.c | 86 +++++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 52 -----------------------
> hw/virtio/virtio-pci.h | 20 ---------
> tests/Makefile.include | 2 +-
> 5 files changed, 88 insertions(+), 73 deletions(-)
> create mode 100644 hw/virtio/virtio-9p-pci.c
>
> diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
> index 9e33104ce6..3e655fdce6 100644
> --- a/hw/virtio/Makefile.objs
> +++ b/hw/virtio/Makefile.objs
> @@ -17,6 +17,7 @@ obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
> obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
> obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
> obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
> +obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
> endif
> endif
>
> diff --git a/hw/virtio/virtio-9p-pci.c b/hw/virtio/virtio-9p-pci.c
> new file mode 100644
> index 0000000000..74c6ca2ddb
> --- /dev/null
> +++ b/hw/virtio/virtio-9p-pci.c
> @@ -0,0 +1,86 @@
> +/*
> + * Virtio 9p PCI Bindings
> + *
> + * Copyright IBM, Corp. 2010
> + *
> + * Authors:
> + * Anthony Liguori <aliguori@us.ibm.com>
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2. See
> + * the COPYING file in the top-level directory.
> + *
> + * Contributions after 2012-01-13 are licensed under the terms of the
> + * GNU GPL, version 2 or (at your option) any later version.
> + */
> +
> +#include "qemu/osdep.h"
> +
> +#include "virtio-pci.h"
> +#include "hw/9pfs/virtio-9p.h"
> +
> +/*
> + * virtio-9p-pci: This extends VirtioPCIProxy.
> + */
> +
> +#define TYPE_VIRTIO_9P_PCI "virtio-9p-pci"
> +#define VIRTIO_9P_PCI(obj) \
> + OBJECT_CHECK(V9fsPCIState, (obj), TYPE_VIRTIO_9P_PCI)
> +
> +typedef struct V9fsPCIState {
> + VirtIOPCIProxy parent_obj;
> + V9fsVirtioState vdev;
> +} V9fsPCIState;
> +
> +static void virtio_9p_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> +{
> + V9fsPCIState *dev = VIRTIO_9P_PCI(vpci_dev);
> + DeviceState *vdev = DEVICE(&dev->vdev);
> +
> + qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
> + object_property_set_bool(OBJECT(vdev), true, "realized", errp);
> +}
> +
> +static Property virtio_9p_pci_properties[] = {
> + DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
> + VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
> + DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
> + DEFINE_PROP_END_OF_LIST(),
> +};
> +
> +static void virtio_9p_pci_class_init(ObjectClass *klass, void *data)
> +{
> + DeviceClass *dc = DEVICE_CLASS(klass);
> + PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
> + VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
> +
> + k->realize = virtio_9p_pci_realize;
> + pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
> + pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_9P;
> + pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
> + pcidev_k->class_id = 0x2;
> + set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> + dc->props = virtio_9p_pci_properties;
> +}
> +
> +static void virtio_9p_pci_instance_init(Object *obj)
> +{
> + V9fsPCIState *dev = VIRTIO_9P_PCI(obj);
> +
> + virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
> + TYPE_VIRTIO_9P);
> +}
> +
> +static const TypeInfo virtio_9p_pci_info = {
> + .name = TYPE_VIRTIO_9P_PCI,
> + .parent = TYPE_VIRTIO_PCI,
> + .instance_size = sizeof(V9fsPCIState),
> + .instance_init = virtio_9p_pci_instance_init,
> + .class_init = virtio_9p_pci_class_init,
> +};
> +
> +static void virtio_9p_pci_register(void)
> +{
> + type_register_static(&virtio_9p_pci_info);
> +}
> +
> +type_init(virtio_9p_pci_register)
> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
> index 855a7fdd40..bad9279f19 100644
> --- a/hw/virtio/virtio-pci.c
> +++ b/hw/virtio/virtio-pci.c
> @@ -1077,55 +1077,6 @@ static void virtio_pci_vmstate_change(DeviceState *d, bool running)
> }
> }
>
> -#ifdef CONFIG_VIRTFS
> -static void virtio_9p_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> -{
> - V9fsPCIState *dev = VIRTIO_9P_PCI(vpci_dev);
> - DeviceState *vdev = DEVICE(&dev->vdev);
> -
> - qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
> - object_property_set_bool(OBJECT(vdev), true, "realized", errp);
> -}
> -
> -static Property virtio_9p_pci_properties[] = {
> - DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
> - VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
> - DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
> - DEFINE_PROP_END_OF_LIST(),
> -};
> -
> -static void virtio_9p_pci_class_init(ObjectClass *klass, void *data)
> -{
> - DeviceClass *dc = DEVICE_CLASS(klass);
> - PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
> - VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
> -
> - k->realize = virtio_9p_pci_realize;
> - pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
> - pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_9P;
> - pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
> - pcidev_k->class_id = 0x2;
> - set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> - dc->props = virtio_9p_pci_properties;
> -}
> -
> -static void virtio_9p_pci_instance_init(Object *obj)
> -{
> - V9fsPCIState *dev = VIRTIO_9P_PCI(obj);
> -
> - virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
> - TYPE_VIRTIO_9P);
> -}
> -
> -static const TypeInfo virtio_9p_pci_info = {
> - .name = TYPE_VIRTIO_9P_PCI,
> - .parent = TYPE_VIRTIO_PCI,
> - .instance_size = sizeof(V9fsPCIState),
> - .instance_init = virtio_9p_pci_instance_init,
> - .class_init = virtio_9p_pci_class_init,
> -};
> -#endif /* CONFIG_VIRTFS */
> -
> /*
> * virtio-pci: This is the PCIDevice which has a virtio-pci-bus.
> */
> @@ -2413,9 +2364,6 @@ static void virtio_pci_register_types(void)
> {
> type_register_static(&virtio_pci_bus_info);
> type_register_static(&virtio_pci_info);
> -#ifdef CONFIG_VIRTFS
> - type_register_static(&virtio_9p_pci_info);
> -#endif
> type_register_static(&virtio_blk_pci_info);
> #if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
> type_register_static(&vhost_user_blk_pci_info);
> diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
> index 093fde7f4f..200950de0a 100644
> --- a/hw/virtio/virtio-pci.h
> +++ b/hw/virtio/virtio-pci.h
> @@ -28,9 +28,6 @@
> #include "hw/virtio/vhost-user-blk.h"
> #endif
>
> -#ifdef CONFIG_VIRTFS
> -#include "hw/9pfs/virtio-9p.h"
> -#endif
> #ifdef CONFIG_VHOST_SCSI
> #include "hw/virtio/vhost-scsi.h"
> #endif
> @@ -286,23 +283,6 @@ struct VirtIONetPCI {
> VirtIONet vdev;
> };
>
> -/*
> - * virtio-9p-pci: This extends VirtioPCIProxy.
> - */
> -
> -#ifdef CONFIG_VIRTFS
> -
> -#define TYPE_VIRTIO_9P_PCI "virtio-9p-pci"
> -#define VIRTIO_9P_PCI(obj) \
> - OBJECT_CHECK(V9fsPCIState, (obj), TYPE_VIRTIO_9P_PCI)
> -
> -typedef struct V9fsPCIState {
> - VirtIOPCIProxy parent_obj;
> - V9fsVirtioState vdev;
> -} V9fsPCIState;
> -
> -#endif
> -
> /*
> * virtio-input-pci: This extends VirtioPCIProxy.
> */
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index dd7c882cc5..90d33bb058 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -151,7 +151,7 @@ check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
> check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
> check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
> ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
> -check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
> +check-qtest-virtio-$(CONFIG_VIRTIO_9P) += tests/virtio-9p-test$(EXESUF)
> endif
> check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
> check-qtest-virtio-y += $(check-qtest-virtioserial-y)
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work Juan Quintela
2018-12-14 9:02 ` Thomas Huth
@ 2018-12-28 16:09 ` Greg Kurz
1 sibling, 0 replies; 40+ messages in thread
From: Greg Kurz @ 2018-12-28 16:09 UTC (permalink / raw)
To: Juan Quintela
Cc: qemu-devel, Thomas Huth, Gonglei, Gerd Hoffmann, Michael S. Tsirkin
On Thu, 13 Dec 2018 22:00:57 +0100
Juan Quintela <quintela@redhat.com> wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
Reviewed-by: Greg Kurz <groug@kaod.org>
> default-configs/virtio.mak | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
> index 5ae4a61018..ecb4420e74 100644
> --- a/default-configs/virtio.mak
> +++ b/default-configs/virtio.mak
> @@ -1,7 +1,7 @@
> CONFIG_VHOST_USER_SCSI=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
> CONFIG_VHOST_USER_BLK=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
> CONFIG_VIRTIO=y
> -CONFIG_VIRTIO_9P=y
> +CONFIG_VIRTIO_9P=$(CONFIG_VIRTFS)
> CONFIG_VIRTIO_BALLOON=y
> CONFIG_VIRTIO_BLK=y
> CONFIG_VIRTIO_CRYPTO=y
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 12/16] virtio: split virtio net bits rom virtio-pci
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 12/16] virtio: split virtio net " Juan Quintela
@ 2019-01-02 4:44 ` Wei Xu
0 siblings, 0 replies; 40+ messages in thread
From: Wei Xu @ 2019-01-02 4:44 UTC (permalink / raw)
To: Juan Quintela
Cc: qemu-devel, Thomas Huth, Gonglei, Gerd Hoffmann, Michael S. Tsirkin
On Thu, Dec 13, 2018 at 10:00:53PM +0100, Juan Quintela wrote:
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-net-pci.c | 96 ++++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 57 ----------------------
> hw/virtio/virtio-pci.h | 14 ------
> tests/Makefile.include | 2 +-
> 5 files changed, 98 insertions(+), 72 deletions(-)
> create mode 100644 hw/virtio/virtio-net-pci.c
>
> diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
> index 557ad06231..4c31acb017 100644
> --- a/hw/virtio/Makefile.objs
> +++ b/hw/virtio/Makefile.objs
> @@ -23,6 +23,7 @@ obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
> obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
> obj-$(CONFIG_VIRTIO_SCSI) += virtio-scsi-pci.o
> obj-$(CONFIG_VIRTIO_BLK) += virtio-blk-pci.o
> +obj-$(CONFIG_VIRTIO_NET) += virtio-net-pci.o
> endif
> endif
s/rom/from/ in the subject for patch 10, 11, 12 and 13.
Reviewed-by: Wei Xu <wexu@redhat.com>
>
> diff --git a/hw/virtio/virtio-net-pci.c b/hw/virtio/virtio-net-pci.c
> new file mode 100644
> index 0000000000..0b676f078d
> --- /dev/null
> +++ b/hw/virtio/virtio-net-pci.c
> @@ -0,0 +1,96 @@
> +/*
> + * Virtio net PCI Bindings
> + *
> + * Copyright IBM, Corp. 2007
> + * Copyright (c) 2009 CodeSourcery
> + *
> + * Authors:
> + * Anthony Liguori <aliguori@us.ibm.com>
> + * Paul Brook <paul@codesourcery.com>
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2. See
> + * the COPYING file in the top-level directory.
> + *
> + * Contributions after 2012-01-13 are licensed under the terms of the
> + * GNU GPL, version 2 or (at your option) any later version.
> + */
> +
> +#include "qemu/osdep.h"
> +
> +#include "hw/virtio/virtio-net.h"
> +#include "virtio-pci.h"
> +#include "qapi/error.h"
> +
> +typedef struct VirtIONetPCI VirtIONetPCI;
> +
> +/*
> + * virtio-net-pci: This extends VirtioPCIProxy.
> + */
> +#define TYPE_VIRTIO_NET_PCI "virtio-net-pci"
> +#define VIRTIO_NET_PCI(obj) \
> + OBJECT_CHECK(VirtIONetPCI, (obj), TYPE_VIRTIO_NET_PCI)
> +
> +struct VirtIONetPCI {
> + VirtIOPCIProxy parent_obj;
> + VirtIONet vdev;
> +};
> +
> +static Property virtio_net_properties[] = {
> + DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
> + VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
> + DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 3),
> + DEFINE_PROP_END_OF_LIST(),
> +};
> +
> +static void virtio_net_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> +{
> + DeviceState *qdev = DEVICE(vpci_dev);
> + VirtIONetPCI *dev = VIRTIO_NET_PCI(vpci_dev);
> + DeviceState *vdev = DEVICE(&dev->vdev);
> +
> + virtio_net_set_netclient_name(&dev->vdev, qdev->id,
> + object_get_typename(OBJECT(qdev)));
> + qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
> + object_property_set_bool(OBJECT(vdev), true, "realized", errp);
> +}
> +
> +static void virtio_net_pci_class_init(ObjectClass *klass, void *data)
> +{
> + DeviceClass *dc = DEVICE_CLASS(klass);
> + PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
> + VirtioPCIClass *vpciklass = VIRTIO_PCI_CLASS(klass);
> +
> + k->romfile = "efi-virtio.rom";
> + k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
> + k->device_id = PCI_DEVICE_ID_VIRTIO_NET;
> + k->revision = VIRTIO_PCI_ABI_VERSION;
> + k->class_id = PCI_CLASS_NETWORK_ETHERNET;
> + set_bit(DEVICE_CATEGORY_NETWORK, dc->categories);
> + dc->props = virtio_net_properties;
> + vpciklass->realize = virtio_net_pci_realize;
> +}
> +
> +static void virtio_net_pci_instance_init(Object *obj)
> +{
> + VirtIONetPCI *dev = VIRTIO_NET_PCI(obj);
> +
> + virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
> + TYPE_VIRTIO_NET);
> + object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
> + "bootindex", &error_abort);
> +}
> +
> +static const TypeInfo virtio_net_pci_info = {
> + .name = TYPE_VIRTIO_NET_PCI,
> + .parent = TYPE_VIRTIO_PCI,
> + .instance_size = sizeof(VirtIONetPCI),
> + .instance_init = virtio_net_pci_instance_init,
> + .class_init = virtio_net_pci_class_init,
> +};
> +
> +static void virtio_net_pci_register(void)
> +{
> + type_register_static(&virtio_net_pci_info);
> +}
> +
> +type_init(virtio_net_pci_register)
> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
> index 4fe71a56c8..cb03bfa597 100644
> --- a/hw/virtio/virtio-pci.c
> +++ b/hw/virtio/virtio-pci.c
> @@ -19,7 +19,6 @@
>
> #include "standard-headers/linux/virtio_pci.h"
> #include "hw/virtio/virtio.h"
> -#include "hw/virtio/virtio-net.h"
> #include "hw/virtio/virtio-serial.h"
> #include "hw/pci/pci.h"
> #include "qapi/error.h"
> @@ -1966,61 +1965,6 @@ static const TypeInfo virtio_serial_pci_info = {
> .class_init = virtio_serial_pci_class_init,
> };
>
> -/* virtio-net-pci */
> -
> -static Property virtio_net_properties[] = {
> - DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
> - VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
> - DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 3),
> - DEFINE_PROP_END_OF_LIST(),
> -};
> -
> -static void virtio_net_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> -{
> - DeviceState *qdev = DEVICE(vpci_dev);
> - VirtIONetPCI *dev = VIRTIO_NET_PCI(vpci_dev);
> - DeviceState *vdev = DEVICE(&dev->vdev);
> -
> - virtio_net_set_netclient_name(&dev->vdev, qdev->id,
> - object_get_typename(OBJECT(qdev)));
> - qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
> - object_property_set_bool(OBJECT(vdev), true, "realized", errp);
> -}
> -
> -static void virtio_net_pci_class_init(ObjectClass *klass, void *data)
> -{
> - DeviceClass *dc = DEVICE_CLASS(klass);
> - PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
> - VirtioPCIClass *vpciklass = VIRTIO_PCI_CLASS(klass);
> -
> - k->romfile = "efi-virtio.rom";
> - k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
> - k->device_id = PCI_DEVICE_ID_VIRTIO_NET;
> - k->revision = VIRTIO_PCI_ABI_VERSION;
> - k->class_id = PCI_CLASS_NETWORK_ETHERNET;
> - set_bit(DEVICE_CATEGORY_NETWORK, dc->categories);
> - dc->props = virtio_net_properties;
> - vpciklass->realize = virtio_net_pci_realize;
> -}
> -
> -static void virtio_net_pci_instance_init(Object *obj)
> -{
> - VirtIONetPCI *dev = VIRTIO_NET_PCI(obj);
> -
> - virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
> - TYPE_VIRTIO_NET);
> - object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
> - "bootindex", &error_abort);
> -}
> -
> -static const TypeInfo virtio_net_pci_info = {
> - .name = TYPE_VIRTIO_NET_PCI,
> - .parent = TYPE_VIRTIO_PCI,
> - .instance_size = sizeof(VirtIONetPCI),
> - .instance_init = virtio_net_pci_instance_init,
> - .class_init = virtio_net_pci_class_init,
> -};
> -
> /* virtio-pci-bus */
>
> static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
> @@ -2071,7 +2015,6 @@ static void virtio_pci_register_types(void)
> type_register_static(&virtio_pci_bus_info);
> type_register_static(&virtio_pci_info);
> type_register_static(&virtio_serial_pci_info);
> - type_register_static(&virtio_net_pci_info);
> }
>
> type_init(virtio_pci_register_types)
> diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
> index 3c9bbf9287..ab0c7907e4 100644
> --- a/hw/virtio/virtio-pci.h
> +++ b/hw/virtio/virtio-pci.h
> @@ -16,7 +16,6 @@
> #define QEMU_VIRTIO_PCI_H
>
> #include "hw/pci/msi.h"
> -#include "hw/virtio/virtio-net.h"
> #include "hw/virtio/virtio-serial.h"
> #include "hw/virtio/virtio-bus.h"
> #include "hw/virtio/virtio-gpu.h"
> @@ -24,7 +23,6 @@
>
> typedef struct VirtIOPCIProxy VirtIOPCIProxy;
> typedef struct VirtIOSerialPCI VirtIOSerialPCI;
> -typedef struct VirtIONetPCI VirtIONetPCI;
> typedef struct VirtIOGPUPCI VirtIOGPUPCI;
> typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
>
> @@ -195,18 +193,6 @@ struct VirtIOSerialPCI {
> VirtIOSerial vdev;
> };
>
> -/*
> - * virtio-net-pci: This extends VirtioPCIProxy.
> - */
> -#define TYPE_VIRTIO_NET_PCI "virtio-net-pci"
> -#define VIRTIO_NET_PCI(obj) \
> - OBJECT_CHECK(VirtIONetPCI, (obj), TYPE_VIRTIO_NET_PCI)
> -
> -struct VirtIONetPCI {
> - VirtIOPCIProxy parent_obj;
> - VirtIONet vdev;
> -};
> -
> /*
> * virtio-input-pci: This extends VirtioPCIProxy.
> */
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index 78d7cf2fde..770df63d88 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -145,7 +145,7 @@ check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
>
> check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
>
> -check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
> +check-qtest-virtio-$(CONFIG_VIRTIO_NET) += tests/virtio-net-test$(EXESUF)
> check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
> check-qtest-virtio-$(CONFIG_VIRTIO_BLK) += tests/virtio-blk-test$(EXESUF)
> check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
> --
> 2.19.2
>
>
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PATCH v3 09/16] virtio: split vhost scsi bits from virtio-pci
2018-12-14 9:19 ` Thomas Huth
@ 2019-01-02 10:10 ` Stefan Hajnoczi
0 siblings, 0 replies; 40+ messages in thread
From: Stefan Hajnoczi @ 2019-01-02 10:10 UTC (permalink / raw)
To: Thomas Huth
Cc: Juan Quintela, qemu-devel, Nicholas Bellinger,
Michael S. Tsirkin, Gerd Hoffmann, Gonglei
[-- Attachment #1: Type: text/plain, Size: 2048 bytes --]
On Fri, Dec 14, 2018 at 10:19:38AM +0100, Thomas Huth wrote:
> On 2018-12-13 22:00, Juan Quintela wrote:
> > Reviewed-by: Laurent Vivier <lvivier@redhat.com>
> > Signed-off-by: Juan Quintela <quintela@redhat.com>
> > ---
> > hw/virtio/Makefile.objs | 1 +
> > hw/virtio/vhost-scsi-pci.c | 95 ++++++++++++++++++++++++++++++++++++++
> > hw/virtio/virtio-pci.c | 59 -----------------------
> > hw/virtio/virtio-pci.h | 19 --------
> > 4 files changed, 96 insertions(+), 78 deletions(-)
> > create mode 100644 hw/virtio/vhost-scsi-pci.c
> >
> > diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
> > index f851a6f2b5..0a56946c1a 100644
> > --- a/hw/virtio/Makefile.objs
> > +++ b/hw/virtio/Makefile.objs
> > @@ -15,6 +15,7 @@ ifeq ($(CONFIG_PCI),y)
> > obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock-pci.o
> > obj-$(CONFIG_VHOST_USER_BLK) += vhost-user-blk-pci.o
> > obj-$(CONFIG_VHOST_USER_SCSI) += vhost-user-scsi-pci.o
> > +obj-$(CONFIG_VHOST_SCSI) += vhost-scsi-pci.o
> > obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
> > obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
> > obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
> > diff --git a/hw/virtio/vhost-scsi-pci.c b/hw/virtio/vhost-scsi-pci.c
> > new file mode 100644
> > index 0000000000..2be2c567ea
> > --- /dev/null
> > +++ b/hw/virtio/vhost-scsi-pci.c
> > @@ -0,0 +1,95 @@
> > +/*
> > + * Vhost scsi PCI bindings
> > + *
> > + * Copyright IBM, Corp. 2011
> > + *
> > + * Authors:
> > + * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> > + *
> > + * Changes for QEMU mainline + tcm_vhost kernel upstream:
> > + * Nicholas Bellinger <nab@risingtidesystems.com>
> > + *
> > + * This work is licensed under the terms of the GNU LGPL, version 2 or later.
> > + * See the COPYING.LIB file in the top-level directory.
>
> Let's double-check: Stefan, Nicholas, should this file be LGPLv2.1+
> (like hw/scsi/vhost-scsi.c) or rather GPLv2+ (like hw/virtio/virtio-pci.c) ?
I had the LGPL in mind.
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]
^ permalink raw reply [flat|nested] 40+ messages in thread
end of thread, other threads:[~2019-01-02 10:10 UTC | newest]
Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-13 21:00 [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Juan Quintela
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 01/16] virtio: split vhost vsock bits " Juan Quintela
2018-12-14 8:02 ` Thomas Huth
2018-12-18 13:12 ` Stefan Hajnoczi
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 02/16] virtio: split virtio input host " Juan Quintela
2018-12-14 8:29 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 03/16] virtio: split virtio input " Juan Quintela
2018-12-14 8:47 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 04/16] virtio: split virtio rng " Juan Quintela
2018-12-14 8:50 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 05/16] virtio: split virtio balloon " Juan Quintela
2018-12-20 14:27 ` Stefano Garzarella
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 06/16] virtio: split virtio 9p " Juan Quintela
2018-12-14 8:59 ` Thomas Huth
2018-12-28 16:09 ` Greg Kurz
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 07/16] virtio: split vhost user blk " Juan Quintela
2018-12-18 13:13 ` Stefan Hajnoczi
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 08/16] virtio: split vhost user scsi " Juan Quintela
2018-12-14 9:14 ` Thomas Huth
2018-12-14 15:09 ` Felipe Franciosi
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 09/16] virtio: split vhost " Juan Quintela
2018-12-14 9:19 ` Thomas Huth
2019-01-02 10:10 ` Stefan Hajnoczi
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 10/16] virtio: split virtio " Juan Quintela
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 11/16] virtio: split virtio blk bits rom virtio-pci Juan Quintela
2018-12-18 13:12 ` Stefan Hajnoczi
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 12/16] virtio: split virtio net " Juan Quintela
2019-01-02 4:44 ` Wei Xu
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 13/16] virtio: split virtio serial " Juan Quintela
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 14/16] virtio: split virtio gpu bits rom virtio-pci.h Juan Quintela
2018-12-14 9:22 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 15/16] virtio: split virtio crypto " Juan Quintela
2018-12-14 9:43 ` Thomas Huth
2018-12-13 21:00 ` [Qemu-devel] [PATCH v3 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work Juan Quintela
2018-12-14 9:02 ` Thomas Huth
2018-12-28 16:09 ` Greg Kurz
2018-12-14 7:07 ` [Qemu-devel] [PATCH v3 00/16] Virtio devices split from virtio-pci Gonglei (Arei)
2018-12-14 12:53 ` Michael S. Tsirkin
2018-12-15 5:27 ` Gonglei (Arei)
2018-12-16 20:07 ` Michael S. Tsirkin
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.