[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/3] vhost-vdpa-blk: Introduce vhost-vdpa-blk host device
From: |
Stefan Hajnoczi |
Subject: |
Re: [PATCH 3/3] vhost-vdpa-blk: Introduce vhost-vdpa-blk host device |
Date: |
Mon, 26 Apr 2021 16:05:41 +0100 |
On Thu, Apr 08, 2021 at 06:12:52PM +0800, Xie Yongji wrote:
> +static const int vdpa_feature_bits[] = {
> + VIRTIO_BLK_F_SIZE_MAX,
> + VIRTIO_BLK_F_SEG_MAX,
> + VIRTIO_BLK_F_GEOMETRY,
> + VIRTIO_BLK_F_BLK_SIZE,
> + VIRTIO_BLK_F_TOPOLOGY,
> + VIRTIO_BLK_F_MQ,
> + VIRTIO_BLK_F_RO,
> + VIRTIO_BLK_F_FLUSH,
> + VIRTIO_BLK_F_CONFIG_WCE,
> + VIRTIO_BLK_F_DISCARD,
> + VIRTIO_BLK_F_WRITE_ZEROES,
> + VIRTIO_F_VERSION_1,
> + VIRTIO_RING_F_INDIRECT_DESC,
> + VIRTIO_RING_F_EVENT_IDX,
> + VIRTIO_F_NOTIFY_ON_EMPTY,
> + VHOST_INVALID_FEATURE_BIT
> +};
Please add VIRTIO_F_RING_PACKED so it can be implemented in vDPA in the
future without changes to the QEMU vhost-vdpa-blk.c code.
> +static void vhost_vdpa_blk_device_realize(DeviceState *dev, Error **errp)
> +{
> + VirtIODevice *vdev = VIRTIO_DEVICE(dev);
> + VHostVdpaBlk *s = VHOST_VDPA_BLK(vdev);
> + VHostBlkCommon *vbc = VHOST_BLK_COMMON(s);
> + Error *err = NULL;
> + int ret;
> +
> + s->vdpa.device_fd = qemu_open_old(s->vdpa_dev, O_RDWR);
> + if (s->vdpa.device_fd == -1) {
> + error_setg(errp, "vhost-vdpa-blk: open %s failed: %s",
> + s->vdpa_dev, strerror(errno));
> + return;
> + }
> +
> + vhost_blk_common_realize(vbc, vhost_vdpa_blk_handle_output, &err);
> + if (err != NULL) {
> + error_propagate(errp, err);
> + goto blk_err;
> + }
> +
> + vbc->vhost_vqs = g_new0(struct vhost_virtqueue, vbc->num_queues);
This is already done by vhost_blk_common_realize(). The old pointer is
overwritten and leaked here.
> +static const VMStateDescription vmstate_vhost_vdpa_blk = {
> + .name = "vhost-vdpa-blk",
> + .minimum_version_id = 1,
> + .version_id = 1,
> + .fields = (VMStateField[]) {
> + VMSTATE_VIRTIO_DEVICE,
> + VMSTATE_END_OF_LIST()
> + },
> +};
vdpa-blk does not support live migration yet. Please remove this.
Does hw/virtio/vhost.c should automatically register a migration
blocker? If not, please register one.
> +#define TYPE_VHOST_VDPA_BLK "vhost-vdpa-blk"
At this stage vdpa-blk is still very new and in development. I suggest
naming it x-vhost-vdpa-blk so that incompatible changes can still be
made to the command-line/APIs. "x-" can be removed later when the
feature has matured.
signature.asc
Description: PGP signature
- [PATCH 2/3] vhost-blk: Add vhost-blk-common abstraction, (continued)
- Re: [PATCH 3/3] vhost-vdpa-blk: Introduce vhost-vdpa-blk host device,
Stefan Hajnoczi <=
Re: [PATCH 0/3] Introduce vhost-vdpa block device, Stefan Hajnoczi, 2021/04/26