On 2018/11/3 上午12:07, Vitaly Mayatskikh wrote:
+ +static int vhost_vq_poll_start(struct vhost_virtqueue *vq) +{ + if (!vq->worker) { + vq->worker = kthread_create(vhost_vq_worker, vq, "vhost-%d/%i", + vq->dev->pid, vq->index); + if (IS_ERR(vq->worker)) { + int ret = PTR_ERR(vq->worker); + + pr_err("%s: can't create vq worker: %d\n", __func__, + ret); + vq->worker = NULL; + return ret; + } + } + vhost_work_init(&vq->work, vhost_vq_poll_start_work); + vhost_vq_work_queue(vq, &vq->work); + return 0; +} +
I wonder whether or not it's better to allow the device to specific the worker here instead of forcing a per vq worker model. Then we can keep the behavior of exist implementation and do optimization on top?
Thanks