All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Garzarella <sgarzare@redhat.com>
To: virtualization@lists.linux-foundation.org
Cc: Stefan Hajnoczi <stefanha@redhat.com>,
	Laurent Vivier <lvivier@redhat.com>,
	linux-kernel@vger.kernel.org, Eli Cohen <elic@nvidia.com>,
	Jason Wang <jasowang@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Max Gurtovoy <mgurtovoy@nvidia.com>
Subject: [PATCH RFC 07/12] vdpa_sim: move config management outside of the core
Date: Fri, 13 Nov 2020 14:47:07 +0100	[thread overview]
Message-ID: <20201113134712.69744-8-sgarzare@redhat.com> (raw)
In-Reply-To: <20201113134712.69744-1-sgarzare@redhat.com>

In order to simplify the code of the vdpa_sim core, we move the
config management in each device simulator.

The device must provide the size of config structure and a callback
to update this structure called during the vdpasim_set_features().

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
---
 drivers/vdpa/vdpa_sim/vdpa_sim.h     |  5 +++--
 drivers/vdpa/vdpa_sim/vdpa_sim.c     | 29 +++++-----------------------
 drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 27 ++++++++++++++++----------
 drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 12 ++++++++++++
 4 files changed, 37 insertions(+), 36 deletions(-)

diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.h b/drivers/vdpa/vdpa_sim/vdpa_sim.h
index 76e642042eb0..f7e1fe0a88d3 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim.h
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim.h
@@ -10,8 +10,6 @@
 #include <linux/vdpa.h>
 #include <linux/vhost_iotlb.h>
 #include <uapi/linux/virtio_config.h>
-#include <uapi/linux/virtio_net.h>
-#include <uapi/linux/virtio_blk.h>
 
 #define DRV_VERSION  "0.1"
 #define DRV_AUTHOR   "Jason Wang <jasowang@redhat.com>"
@@ -42,8 +40,11 @@ struct vdpasim_virtqueue {
 
 struct vdpasim_device {
 	u64 supported_features;
+	size_t config_size;
 	u32 id;
 	int nvqs;
+
+	void (*update_config)(struct vdpasim *vdpasim);
 };
 
 struct vdpasim_init_attr {
diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.c b/drivers/vdpa/vdpa_sim/vdpa_sim.c
index d053bd14b3f8..9c29c2013661 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c
@@ -185,14 +185,8 @@ struct vdpasim *vdpasim_create(struct vdpasim_init_attr *attr)
 {
 	const struct vdpa_config_ops *ops;
 	struct vdpasim *vdpasim;
-	u32 device_id;
 	struct device *dev;
-	int i, size, ret = -ENOMEM;
-
-	device_id = attr->device.id;
-	/* Currently, we only accept the network and block devices. */
-	if (device_id != VIRTIO_ID_NET && device_id != VIRTIO_ID_BLOCK)
-		return ERR_PTR(-EOPNOTSUPP);
+	int i, ret = -ENOMEM;
 
 	if (attr->batch_mapping)
 		ops = &vdpasim_batch_config_ops;
@@ -206,11 +200,7 @@ struct vdpasim *vdpasim_create(struct vdpasim_init_attr *attr)
 
 	vdpasim->device = attr->device;
 
-	if (device_id == VIRTIO_ID_NET)
-		size = sizeof(struct virtio_net_config);
-	else
-		size = sizeof(struct virtio_blk_config);
-	vdpasim->config = kzalloc(size, GFP_KERNEL);
+	vdpasim->config = kzalloc(vdpasim->device.config_size, GFP_KERNEL);
 	if (!vdpasim->config)
 		goto err_iommu;
 
@@ -364,13 +354,8 @@ static int vdpasim_set_features(struct vdpa_device *vdpa, u64 features)
 	 * Note: We actually require VIRTIO_F_ACCESS_PLATFORM above which
 	 * implies VIRTIO_F_VERSION_1, but let's not try to be clever here.
 	 */
-	if (vdpasim->device.id == VIRTIO_ID_NET) {
-		struct virtio_net_config *config =
-			(struct virtio_net_config *)vdpasim->config;
-
-		config->mtu = cpu_to_vdpasim16(vdpasim, 1500);
-		config->status = cpu_to_vdpasim16(vdpasim, VIRTIO_NET_S_LINK_UP);
-	}
+	if (vdpasim->device.update_config)
+		vdpasim->device.update_config(vdpasim);
 
 	return 0;
 }
@@ -426,11 +411,7 @@ static void vdpasim_get_config(struct vdpa_device *vdpa, unsigned int offset,
 {
 	struct vdpasim *vdpasim = vdpa_to_sim(vdpa);
 
-	if (vdpasim->device.id == VIRTIO_ID_BLOCK &&
-	    (offset + len < sizeof(struct virtio_blk_config)))
-		memcpy(buf, vdpasim->config + offset, len);
-	else if (vdpasim->device.id == VIRTIO_ID_NET &&
-		 (offset + len < sizeof(struct virtio_net_config)))
+	if (offset + len < vdpasim->device.config_size)
 		memcpy(buf, vdpasim->config + offset, len);
 }
 
diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c b/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
index 363273d72e26..f456a0e4e097 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
@@ -7,6 +7,7 @@
  */
 
 #include <linux/module.h>
+#include <uapi/linux/virtio_blk.h>
 
 #include "vdpa_sim.h"
 
@@ -72,16 +73,31 @@ static void vdpasim_blk_work(struct work_struct *work)
 
 }
 
+static void vdpasim_blk_update_config(struct vdpasim *vdpasim)
+{
+	struct virtio_blk_config *config =
+		(struct virtio_blk_config *)vdpasim->config;
+
+	config->capacity = cpu_to_vdpasim64(vdpasim, VDPASIM_BLK_CAPACITY);
+	config->size_max = cpu_to_vdpasim32(vdpasim, VDPASIM_BLK_SIZE_MAX);
+	config->seg_max = cpu_to_vdpasim32(vdpasim, VDPASIM_BLK_SEG_MAX);
+	config->num_queues = cpu_to_vdpasim16(vdpasim, VDPASIM_BLK_VQ_NUM);
+	config->min_io_size = cpu_to_vdpasim16(vdpasim, 1);
+	config->opt_io_size = cpu_to_vdpasim32(vdpasim, 1);
+	config->blk_size = cpu_to_vdpasim32(vdpasim, 512);
+}
+
 static int __init vdpasim_blk_init(void)
 {
 	struct vdpasim_init_attr attr = {};
-	struct virtio_blk_config *config;
 	int ret;
 
 	attr.device.id = VIRTIO_ID_BLOCK;
 	attr.device.supported_features = VDPASIM_FEATURES |
 					 VDPASIM_BLK_FEATURES;
 	attr.device.nvqs = VDPASIM_BLK_VQ_NUM;
+	attr.device.config_size = sizeof(struct virtio_blk_config);
+	attr.device.update_config = vdpasim_blk_update_config;
 
 	attr.work_fn = vdpasim_blk_work;
 
@@ -91,15 +107,6 @@ static int __init vdpasim_blk_init(void)
 		goto out;
 	}
 
-	config = (struct virtio_blk_config *)vdpasim_blk_dev->config;
-	config->capacity = cpu_to_vdpasim64(vdpasim_blk_dev, VDPASIM_BLK_CAPACITY);
-	config->size_max = cpu_to_vdpasim32(vdpasim_blk_dev, VDPASIM_BLK_SIZE_MAX);
-	config->seg_max = cpu_to_vdpasim32(vdpasim_blk_dev, VDPASIM_BLK_SEG_MAX);
-	config->num_queues = cpu_to_vdpasim16(vdpasim_blk_dev, VDPASIM_BLK_VQ_NUM);
-	config->min_io_size = cpu_to_vdpasim16(vdpasim_blk_dev, 1);
-	config->opt_io_size = cpu_to_vdpasim32(vdpasim_blk_dev, 1);
-	config->blk_size = cpu_to_vdpasim32(vdpasim_blk_dev, 512);
-
 	ret = vdpa_register_device(&vdpasim_blk_dev->vdpa);
 	if (ret)
 		goto put_dev;
diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
index 88c9569f6bd3..b9372fdf2415 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
@@ -9,6 +9,7 @@
 
 #include <linux/module.h>
 #include <linux/etherdevice.h>
+#include <uapi/linux/virtio_net.h>
 
 #include "vdpa_sim.h"
 
@@ -99,6 +100,15 @@ static void vdpasim_net_work(struct work_struct *work)
 	spin_unlock(&vdpasim->lock);
 }
 
+static void vdpasim_net_update_config(struct vdpasim *vdpasim)
+{
+	struct virtio_net_config *config =
+		(struct virtio_net_config *)vdpasim->config;
+
+	config->mtu = cpu_to_vdpasim16(vdpasim, 1500);
+	config->status = cpu_to_vdpasim16(vdpasim, VIRTIO_NET_S_LINK_UP);
+}
+
 static int __init vdpasim_net_init(void)
 {
 	struct vdpasim_init_attr attr = {};
@@ -109,6 +119,8 @@ static int __init vdpasim_net_init(void)
 	attr.device.supported_features = VDPASIM_FEATURES |
 					 VDPASIM_NET_FEATURES;
 	attr.device.nvqs = VDPASIM_NET_VQ_NUM;
+	attr.device.config_size = sizeof(struct virtio_net_config);
+	attr.device.update_config = vdpasim_net_update_config;
 
 	attr.work_fn = vdpasim_net_work;
 	attr.batch_mapping = batch_mapping;
-- 
2.26.2


WARNING: multiple messages have this Message-ID (diff)
From: Stefano Garzarella <sgarzare@redhat.com>
To: virtualization@lists.linux-foundation.org
Cc: Laurent Vivier <lvivier@redhat.com>,
	Max Gurtovoy <mgurtovoy@nvidia.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	linux-kernel@vger.kernel.org,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Eli Cohen <elic@nvidia.com>
Subject: [PATCH RFC 07/12] vdpa_sim: move config management outside of the core
Date: Fri, 13 Nov 2020 14:47:07 +0100	[thread overview]
Message-ID: <20201113134712.69744-8-sgarzare@redhat.com> (raw)
In-Reply-To: <20201113134712.69744-1-sgarzare@redhat.com>

In order to simplify the code of the vdpa_sim core, we move the
config management in each device simulator.

The device must provide the size of config structure and a callback
to update this structure called during the vdpasim_set_features().

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
---
 drivers/vdpa/vdpa_sim/vdpa_sim.h     |  5 +++--
 drivers/vdpa/vdpa_sim/vdpa_sim.c     | 29 +++++-----------------------
 drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 27 ++++++++++++++++----------
 drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 12 ++++++++++++
 4 files changed, 37 insertions(+), 36 deletions(-)

diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.h b/drivers/vdpa/vdpa_sim/vdpa_sim.h
index 76e642042eb0..f7e1fe0a88d3 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim.h
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim.h
@@ -10,8 +10,6 @@
 #include <linux/vdpa.h>
 #include <linux/vhost_iotlb.h>
 #include <uapi/linux/virtio_config.h>
-#include <uapi/linux/virtio_net.h>
-#include <uapi/linux/virtio_blk.h>
 
 #define DRV_VERSION  "0.1"
 #define DRV_AUTHOR   "Jason Wang <jasowang@redhat.com>"
@@ -42,8 +40,11 @@ struct vdpasim_virtqueue {
 
 struct vdpasim_device {
 	u64 supported_features;
+	size_t config_size;
 	u32 id;
 	int nvqs;
+
+	void (*update_config)(struct vdpasim *vdpasim);
 };
 
 struct vdpasim_init_attr {
diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.c b/drivers/vdpa/vdpa_sim/vdpa_sim.c
index d053bd14b3f8..9c29c2013661 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c
@@ -185,14 +185,8 @@ struct vdpasim *vdpasim_create(struct vdpasim_init_attr *attr)
 {
 	const struct vdpa_config_ops *ops;
 	struct vdpasim *vdpasim;
-	u32 device_id;
 	struct device *dev;
-	int i, size, ret = -ENOMEM;
-
-	device_id = attr->device.id;
-	/* Currently, we only accept the network and block devices. */
-	if (device_id != VIRTIO_ID_NET && device_id != VIRTIO_ID_BLOCK)
-		return ERR_PTR(-EOPNOTSUPP);
+	int i, ret = -ENOMEM;
 
 	if (attr->batch_mapping)
 		ops = &vdpasim_batch_config_ops;
@@ -206,11 +200,7 @@ struct vdpasim *vdpasim_create(struct vdpasim_init_attr *attr)
 
 	vdpasim->device = attr->device;
 
-	if (device_id == VIRTIO_ID_NET)
-		size = sizeof(struct virtio_net_config);
-	else
-		size = sizeof(struct virtio_blk_config);
-	vdpasim->config = kzalloc(size, GFP_KERNEL);
+	vdpasim->config = kzalloc(vdpasim->device.config_size, GFP_KERNEL);
 	if (!vdpasim->config)
 		goto err_iommu;
 
@@ -364,13 +354,8 @@ static int vdpasim_set_features(struct vdpa_device *vdpa, u64 features)
 	 * Note: We actually require VIRTIO_F_ACCESS_PLATFORM above which
 	 * implies VIRTIO_F_VERSION_1, but let's not try to be clever here.
 	 */
-	if (vdpasim->device.id == VIRTIO_ID_NET) {
-		struct virtio_net_config *config =
-			(struct virtio_net_config *)vdpasim->config;
-
-		config->mtu = cpu_to_vdpasim16(vdpasim, 1500);
-		config->status = cpu_to_vdpasim16(vdpasim, VIRTIO_NET_S_LINK_UP);
-	}
+	if (vdpasim->device.update_config)
+		vdpasim->device.update_config(vdpasim);
 
 	return 0;
 }
@@ -426,11 +411,7 @@ static void vdpasim_get_config(struct vdpa_device *vdpa, unsigned int offset,
 {
 	struct vdpasim *vdpasim = vdpa_to_sim(vdpa);
 
-	if (vdpasim->device.id == VIRTIO_ID_BLOCK &&
-	    (offset + len < sizeof(struct virtio_blk_config)))
-		memcpy(buf, vdpasim->config + offset, len);
-	else if (vdpasim->device.id == VIRTIO_ID_NET &&
-		 (offset + len < sizeof(struct virtio_net_config)))
+	if (offset + len < vdpasim->device.config_size)
 		memcpy(buf, vdpasim->config + offset, len);
 }
 
diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c b/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
index 363273d72e26..f456a0e4e097 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
@@ -7,6 +7,7 @@
  */
 
 #include <linux/module.h>
+#include <uapi/linux/virtio_blk.h>
 
 #include "vdpa_sim.h"
 
@@ -72,16 +73,31 @@ static void vdpasim_blk_work(struct work_struct *work)
 
 }
 
+static void vdpasim_blk_update_config(struct vdpasim *vdpasim)
+{
+	struct virtio_blk_config *config =
+		(struct virtio_blk_config *)vdpasim->config;
+
+	config->capacity = cpu_to_vdpasim64(vdpasim, VDPASIM_BLK_CAPACITY);
+	config->size_max = cpu_to_vdpasim32(vdpasim, VDPASIM_BLK_SIZE_MAX);
+	config->seg_max = cpu_to_vdpasim32(vdpasim, VDPASIM_BLK_SEG_MAX);
+	config->num_queues = cpu_to_vdpasim16(vdpasim, VDPASIM_BLK_VQ_NUM);
+	config->min_io_size = cpu_to_vdpasim16(vdpasim, 1);
+	config->opt_io_size = cpu_to_vdpasim32(vdpasim, 1);
+	config->blk_size = cpu_to_vdpasim32(vdpasim, 512);
+}
+
 static int __init vdpasim_blk_init(void)
 {
 	struct vdpasim_init_attr attr = {};
-	struct virtio_blk_config *config;
 	int ret;
 
 	attr.device.id = VIRTIO_ID_BLOCK;
 	attr.device.supported_features = VDPASIM_FEATURES |
 					 VDPASIM_BLK_FEATURES;
 	attr.device.nvqs = VDPASIM_BLK_VQ_NUM;
+	attr.device.config_size = sizeof(struct virtio_blk_config);
+	attr.device.update_config = vdpasim_blk_update_config;
 
 	attr.work_fn = vdpasim_blk_work;
 
@@ -91,15 +107,6 @@ static int __init vdpasim_blk_init(void)
 		goto out;
 	}
 
-	config = (struct virtio_blk_config *)vdpasim_blk_dev->config;
-	config->capacity = cpu_to_vdpasim64(vdpasim_blk_dev, VDPASIM_BLK_CAPACITY);
-	config->size_max = cpu_to_vdpasim32(vdpasim_blk_dev, VDPASIM_BLK_SIZE_MAX);
-	config->seg_max = cpu_to_vdpasim32(vdpasim_blk_dev, VDPASIM_BLK_SEG_MAX);
-	config->num_queues = cpu_to_vdpasim16(vdpasim_blk_dev, VDPASIM_BLK_VQ_NUM);
-	config->min_io_size = cpu_to_vdpasim16(vdpasim_blk_dev, 1);
-	config->opt_io_size = cpu_to_vdpasim32(vdpasim_blk_dev, 1);
-	config->blk_size = cpu_to_vdpasim32(vdpasim_blk_dev, 512);
-
 	ret = vdpa_register_device(&vdpasim_blk_dev->vdpa);
 	if (ret)
 		goto put_dev;
diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
index 88c9569f6bd3..b9372fdf2415 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
@@ -9,6 +9,7 @@
 
 #include <linux/module.h>
 #include <linux/etherdevice.h>
+#include <uapi/linux/virtio_net.h>
 
 #include "vdpa_sim.h"
 
@@ -99,6 +100,15 @@ static void vdpasim_net_work(struct work_struct *work)
 	spin_unlock(&vdpasim->lock);
 }
 
+static void vdpasim_net_update_config(struct vdpasim *vdpasim)
+{
+	struct virtio_net_config *config =
+		(struct virtio_net_config *)vdpasim->config;
+
+	config->mtu = cpu_to_vdpasim16(vdpasim, 1500);
+	config->status = cpu_to_vdpasim16(vdpasim, VIRTIO_NET_S_LINK_UP);
+}
+
 static int __init vdpasim_net_init(void)
 {
 	struct vdpasim_init_attr attr = {};
@@ -109,6 +119,8 @@ static int __init vdpasim_net_init(void)
 	attr.device.supported_features = VDPASIM_FEATURES |
 					 VDPASIM_NET_FEATURES;
 	attr.device.nvqs = VDPASIM_NET_VQ_NUM;
+	attr.device.config_size = sizeof(struct virtio_net_config);
+	attr.device.update_config = vdpasim_net_update_config;
 
 	attr.work_fn = vdpasim_net_work;
 	attr.batch_mapping = batch_mapping;
-- 
2.26.2

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

  parent reply	other threads:[~2020-11-13 13:48 UTC|newest]

Thread overview: 131+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-13 13:47 [PATCH RFC 00/12] vdpa: generalize vdpa simulator and add block device Stefano Garzarella
2020-11-13 13:47 ` Stefano Garzarella
2020-11-13 13:47 ` [PATCH RFC 01/12] vhost-vdpa: add support for vDPA blk devices Stefano Garzarella
2020-11-13 13:47   ` Stefano Garzarella
2020-11-17 10:57   ` Stefan Hajnoczi
2020-11-17 10:57     ` Stefan Hajnoczi
2020-11-17 15:05     ` Stefano Garzarella
2020-11-17 15:05       ` Stefano Garzarella
2020-11-13 13:47 ` [PATCH RFC 02/12] vdpa: split vdpasim to core and net modules Stefano Garzarella
2020-11-13 13:47   ` Stefano Garzarella
2020-11-13 18:32   ` kernel test robot
2020-11-16  4:00   ` Jason Wang
2020-11-16  4:00     ` Jason Wang
2020-11-16  9:39     ` Stefano Garzarella
2020-11-16  9:39       ` Stefano Garzarella
2020-11-18 13:14     ` Stefano Garzarella
2020-11-18 13:14       ` Stefano Garzarella
2020-11-19  6:16       ` Jason Wang
2020-11-19  6:16         ` Jason Wang
2020-11-16  9:06   ` Dan Carpenter
2020-11-16  9:06     ` Dan Carpenter
2020-11-16  9:12     ` Stefano Garzarella
2020-11-16 10:47       ` Dan Carpenter
2020-11-16 10:47         ` Dan Carpenter
2020-11-16 11:16         ` Stefano Garzarella
2020-11-16 11:58           ` Dan Carpenter
2020-11-16 11:58             ` Dan Carpenter
2020-11-16 12:41             ` Stefano Garzarella
2020-11-16 12:54               ` Dan Carpenter
2020-11-16 12:54                 ` Dan Carpenter
2020-11-13 13:47 ` [PATCH RFC 03/12] vdpa_sim: remove hard-coded virtq count Stefano Garzarella
2020-11-13 13:47   ` Stefano Garzarella
2020-11-16  4:02   ` Jason Wang
2020-11-16  4:02     ` Jason Wang
2020-11-13 13:47 ` [PATCH RFC 04/12] vdpa: add vdpa simulator for block device Stefano Garzarella
2020-11-13 13:47   ` Stefano Garzarella
2020-11-16  4:10   ` Jason Wang
2020-11-16  4:10     ` Jason Wang
2020-11-16 10:17     ` Stefano Garzarella
2020-11-16 10:17       ` Stefano Garzarella
2020-11-17 11:11   ` Stefan Hajnoczi
2020-11-17 11:11     ` Stefan Hajnoczi
2020-11-17 14:16     ` Stefano Garzarella
2020-11-17 14:16       ` Stefano Garzarella
2020-11-17 16:43       ` Stefan Hajnoczi
2020-11-17 16:43         ` Stefan Hajnoczi
2020-11-17 17:38         ` Stefano Garzarella
2020-11-17 17:38           ` Stefano Garzarella
2020-11-18 11:23           ` Stefan Hajnoczi
2020-11-18 11:23             ` Stefan Hajnoczi
2020-11-18 11:39             ` Stefano Garzarella
2020-11-18 11:39               ` Stefano Garzarella
2020-11-13 13:47 ` [PATCH RFC 05/12] vdpa_sim: remove the limit of IOTLB entries Stefano Garzarella
2020-11-13 13:47   ` Stefano Garzarella
2020-11-16  4:12   ` Jason Wang
2020-11-16  4:12     ` Jason Wang
2020-11-16 10:22     ` Stefano Garzarella
2020-11-16 10:22       ` Stefano Garzarella
2020-11-13 13:47 ` [PATCH RFC 06/12] vdpa_sim: add struct vdpasim_device to store device properties Stefano Garzarella
2020-11-13 13:47   ` Stefano Garzarella
2020-11-16  4:14   ` Jason Wang
2020-11-16  4:14     ` Jason Wang
2020-11-16 10:30     ` Stefano Garzarella
2020-11-16 10:30       ` Stefano Garzarella
2020-11-17 11:23   ` Stefan Hajnoczi
2020-11-17 11:23     ` Stefan Hajnoczi
2020-11-17 14:24     ` Stefano Garzarella
2020-11-17 14:24       ` Stefano Garzarella
2020-11-13 13:47 ` Stefano Garzarella [this message]
2020-11-13 13:47   ` [PATCH RFC 07/12] vdpa_sim: move config management outside of the core Stefano Garzarella
2020-11-16  4:18   ` Jason Wang
2020-11-16  4:18     ` Jason Wang
2020-11-16 10:42     ` Stefano Garzarella
2020-11-16 10:42       ` Stefano Garzarella
2020-11-13 13:47 ` [PATCH RFC 08/12] vdpa_sim: use kvmalloc to allocate vdpasim->buffer Stefano Garzarella
2020-11-13 13:47   ` Stefano Garzarella
2020-11-16  4:19   ` Jason Wang
2020-11-16  4:19     ` Jason Wang
2020-11-13 13:47 ` [PATCH RFC 09/12] vdpa_sim: make vdpasim->buffer size configurable Stefano Garzarella
2020-11-13 13:47   ` Stefano Garzarella
2020-11-16  4:19   ` Jason Wang
2020-11-16  4:19     ` Jason Wang
2020-11-13 13:47 ` [PATCH RFC 10/12] vdpa_sim: split vdpasim_virtqueue's iov field in riov and wiov Stefano Garzarella
2020-11-13 13:47   ` Stefano Garzarella
2020-11-16  4:21   ` Jason Wang
2020-11-16  4:21     ` Jason Wang
2020-11-17 11:27   ` Stefan Hajnoczi
2020-11-17 11:27     ` Stefan Hajnoczi
2020-11-20 14:41     ` Stefano Garzarella
2020-11-20 14:41       ` Stefano Garzarella
2020-11-13 13:47 ` [PATCH RFC 11/12] vringh: allow vringh_iov_xfer() to skip bytes when ptr is NULL Stefano Garzarella
2020-11-13 13:47   ` Stefano Garzarella
2020-11-16  4:32   ` Jason Wang
2020-11-16  4:32     ` Jason Wang
2020-11-16 11:48     ` Stefano Garzarella
2020-11-16 11:48       ` Stefano Garzarella
2020-11-13 13:47 ` [PATCH RFC 12/12] vdpa_sim_blk: implement ramdisk behaviour Stefano Garzarella
2020-11-13 13:47   ` Stefano Garzarella
2020-11-13 15:15   ` kernel test robot
2020-11-16  5:25   ` Jason Wang
2020-11-16  5:25     ` Jason Wang
2020-11-16 11:08     ` Stefano Garzarella
2020-11-16 11:08       ` Stefano Garzarella
2020-11-16  9:50   ` Michael S. Tsirkin
2020-11-16  9:50     ` Michael S. Tsirkin
2020-11-16 11:23     ` Stefano Garzarella
2020-11-16 11:23       ` Stefano Garzarella
2020-11-17 11:36   ` Stefan Hajnoczi
2020-11-17 11:36     ` Stefan Hajnoczi
2020-11-17 14:32     ` Stefano Garzarella
2020-11-17 14:32       ` Stefano Garzarella
2020-11-16  3:37 ` [PATCH RFC 00/12] vdpa: generalize vdpa simulator and add block device Jason Wang
2020-11-16  3:37   ` Jason Wang
2020-11-16  8:53   ` Stefano Garzarella
2020-11-16  8:53     ` Stefano Garzarella
2020-12-18 11:38   ` Stefano Garzarella
2020-12-18 11:38     ` Stefano Garzarella
2020-12-21  3:16     ` Jason Wang
2020-12-21  3:16       ` Jason Wang
2020-12-21 11:14       ` Stefano Garzarella
2020-12-21 11:14         ` Stefano Garzarella
2020-12-22  2:44         ` Jason Wang
2020-12-22  2:44           ` Jason Wang
2020-12-22 10:57           ` Stefano Garzarella
2020-12-22 10:57             ` Stefano Garzarella
2020-12-22 12:29             ` Jason Wang
2020-12-22 12:29               ` Jason Wang
2020-12-22 12:56               ` Jason Wang
2020-12-22 12:56                 ` Jason Wang
2020-12-22 13:23               ` Stefano Garzarella
2020-12-22 13:23                 ` Stefano Garzarella

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201113134712.69744-8-sgarzare@redhat.com \
    --to=sgarzare@redhat.com \
    --cc=elic@nvidia.com \
    --cc=jasowang@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lvivier@redhat.com \
    --cc=mgurtovoy@nvidia.com \
    --cc=mst@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.