Re: [PATCH 2/8] vhost: add helper to check if a vq has been setup
From: Jason Wang <hidden>
Date: 2020-09-22 02:02:30
Also in:
linux-scsi, target-devel
On 2020/9/22 上午2:23, Mike Christie wrote:
quoted hunk
This adds a helper check if a vq has been setup. The next patches will use this when we move the vhost scsi cmd preallocation from per session to per vq. In the per vq case, we only want to allocate cmds for vqs that have actually been setup and not for all the possible vqs. Signed-off-by: Mike Christie <michael.christie@oracle.com> --- drivers/vhost/vhost.c | 9 +++++++++ drivers/vhost/vhost.h | 1 + 2 files changed, 10 insertions(+)diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index b45519c..5dd9eb1 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c@@ -305,6 +305,15 @@ static void vhost_vring_call_reset(struct vhost_vring_call *call_ctx) spin_lock_init(&call_ctx->ctx_lock); } +bool vhost_vq_is_setup(struct vhost_virtqueue *vq) +{ + if (vq->avail && vq->desc && vq->used && vhost_vq_access_ok(vq)) + return true; + else + return false; +} +EXPORT_SYMBOL_GPL(vhost_vq_is_setup);
This is probably ok but I wonder maybe we should have something like what vDPA did (VHOST_SET_VRING_ENABLE) to match virtio 1.0 device definition. Thanks
quoted hunk
+ static void vhost_vq_reset(struct vhost_dev *dev, struct vhost_virtqueue *vq) {diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index 9032d3c..3d30b3d 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h@@ -190,6 +190,7 @@ int vhost_get_vq_desc(struct vhost_virtqueue *, struct vhost_log *log, unsigned int *log_num); void vhost_discard_vq_desc(struct vhost_virtqueue *, int n); +bool vhost_vq_is_setup(struct vhost_virtqueue *vq); int vhost_vq_init_access(struct vhost_virtqueue *); int vhost_add_used(struct vhost_virtqueue *, unsigned int head, int len); int vhost_add_used_n(struct vhost_virtqueue *, struct vring_used_elem *heads,
_______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization