Commit bb105d51 authored by Jason Wang's avatar Jason Wang Committed by Michael S. Tsirkin
Browse files

vdpasim: customize allocation size



Allow individual simulator to customize the allocation size.

Reviewed-by: default avatarStefano Garzarella <sgarzare@redhat.com>
Acked-by: default avatarEugenio Pérez <eperezma@redhat.com>
Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
Message-Id: <20221223055548.27810-3-jasowang@redhat.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 0497f23e
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -256,6 +256,9 @@ struct vdpasim *vdpasim_create(struct vdpasim_dev_attr *dev_attr,
	struct device *dev;
	int i, ret = -ENOMEM;

	if (!dev_attr->alloc_size)
		return ERR_PTR(-EINVAL);

	if (config->mask & BIT_ULL(VDPA_ATTR_DEV_FEATURES)) {
		if (config->device_features &
		    ~dev_attr->supported_features)
@@ -271,7 +274,7 @@ struct vdpasim *vdpasim_create(struct vdpasim_dev_attr *dev_attr,

	vdpa = __vdpa_alloc_device(NULL, ops,
				   dev_attr->ngroups, dev_attr->nas,
				   sizeof(struct vdpasim),
				   dev_attr->alloc_size,
				   dev_attr->name, false);
	if (IS_ERR(vdpa)) {
		ret = PTR_ERR(vdpa);
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ struct vdpasim_dev_attr {
	struct vdpa_mgmt_dev *mgmt_dev;
	const char *name;
	u64 supported_features;
	size_t alloc_size;
	size_t config_size;
	size_t buffer_size;
	int nvqs;
+1 −0
Original line number Diff line number Diff line
@@ -378,6 +378,7 @@ static int vdpasim_blk_dev_add(struct vdpa_mgmt_dev *mdev, const char *name,
	dev_attr.nvqs = VDPASIM_BLK_VQ_NUM;
	dev_attr.ngroups = VDPASIM_BLK_GROUP_NUM;
	dev_attr.nas = VDPASIM_BLK_AS_NUM;
	dev_attr.alloc_size = sizeof(struct vdpasim);
	dev_attr.config_size = sizeof(struct virtio_blk_config);
	dev_attr.get_config = vdpasim_blk_get_config;
	dev_attr.work_fn = vdpasim_blk_work;
+1 −0
Original line number Diff line number Diff line
@@ -253,6 +253,7 @@ static int vdpasim_net_dev_add(struct vdpa_mgmt_dev *mdev, const char *name,
	dev_attr.nvqs = VDPASIM_NET_VQ_NUM;
	dev_attr.ngroups = VDPASIM_NET_GROUP_NUM;
	dev_attr.nas = VDPASIM_NET_AS_NUM;
	dev_attr.alloc_size = sizeof(struct vdpasim);
	dev_attr.config_size = sizeof(struct virtio_net_config);
	dev_attr.get_config = vdpasim_net_get_config;
	dev_attr.work_fn = vdpasim_net_work;