[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] vhost-user: current status of multiqueue support
From: |
Nikita Kalyazin |
Subject: |
[Qemu-devel] vhost-user: current status of multiqueue support |
Date: |
Wed, 24 Jun 2015 18:52:03 +0300 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
Hi,
What is the status of vhost-user multiqueue support in Qemu?
I am looking at 830d70db692e374b55555f4407f96a1ceefdcc97 patch in master and
observe the following:
-8<-----------------------------------------------------------------------------
case VHOST_SET_VRING_KICK:
case VHOST_SET_VRING_CALL:
case VHOST_SET_VRING_ERR:
file = arg;
- msg.u64 = file->index & VHOST_USER_VRING_IDX_MASK;
+ msg.u64 = (file->index + dev->vq_index) & VHOST_USER_VRING_IDX_MASK;
msg.size = sizeof(m.u64);
if (ioeventfd_enabled() && file->fd > 0) {
fds[fd_num++] = file->fd;
} else {
msg.u64 |= VHOST_USER_VRING_NOFD_MASK;
}
break;
->8-----------------------------------------------------------------------------
What is the meaning of "file->index + dev->vq_index" expression?
Assuming "queues=4" parameter is passed at Qemu command line and "file->index"
is either 0 or 1, Vhost receives the following sequence of VHOST_SET_VRING_CALL
requests:
- msg.u64 = 0 (file->index = 0, dev->vq_index = 0)
- msg.u64 = 1 (file->index = 1, dev->vq_index = 0)
- msg.u64 = 1 (file->index = 0, dev->vq_index = 1)
- msg.u64 = 2 (file->index = 1, dev->vq_index = 1)
- msg.u64 = 2 (file->index = 0, dev->vq_index = 2)
- msg.u64 = 3 (file->index = 1, dev->vq_index = 2)
- msg.u64 = 3 (file->index = 0, dev->vq_index = 3)
- msg.u64 = 4 (file->index = 1, dev->vq_index = 3)
This means, CALLs for virtqueues 0-4 only would be configured (whereas
virtqueues 5-7 remain unconfigured).
Has it been done intentionally?
--
Best regards,
Nikita Kalyazin,
address@hidden
Software Engineer
CE OS Group
Samsung R&D Institute Russia
Tel: +7 (495) 797-25-00 #3816
Tel: +7 (495) 797-25-03
Office #1501, 12-1, Dvintsev str.,
Moscow, 127018, Russia