On 2017年08月21日 11:28, lu.zhip...@zte.com.cn wrote:
if (!vdev->use_guest_notifier_mask) { /* TODO: check and handle errors. */ vhost_virtqueue_mask(dev, vdev, idx, false) ---------- set right callfd } if (k->query_guest_notifiers && k->query_guest_notifiers(qbus->parent) && virtio_queue_vector(vdev, idx) == VIRTIO_NO_VECTOR) { file.fd = -1 r = dev->vhost_ops->vhost_set_vring_call(dev, &file) -----------set call fd to -1 if (r) { goto fail_vector } } So the callfd of ovs+dpdk in host is -1. it can't be able to interact with the guest.
The queue does not even an vector, so it won't generate any interrupt. Why callfd is still needed?
Thanks