[dpdk-dev] DPDK's vhost-user logging capability
Yuanhan Liu
yuanhan.liu at linux.intel.com
Fri Mar 25 03:49:59 CET 2016
On Wed, Mar 23, 2016 at 03:34:09PM +0000, shesha Sreenivasamurthy (shesha) wrote:
> Hi All,
>
> I was going over vhost-user migration capability in DPDK in lieu of a Cisco's
> multi-q DPDK vhost-user application. I see that log_base address is implemented
> as per virtio_net device. However, desc, addr and used is per vhost_virtqueue.
> Additionally, QEMU sends one VHOST_USER_SET_LOG_BASE per queue-pair (QEMU - hw/
> virtio/vhost.c::vhost_dev_set_log).
>
> Does it mean we need to log dirty pages of all rings to same location ?
Hi,
Yes, and QEMU allocates only one block of memory (see vhost_log_alloc())
after all.
> If that
> is the case then why does QEMU sends separate VHOST_USER_SET_LOG_BASE per queue
> pair ?
That's kind of like a design. One queue pair is associated with one
vhost_dev struct in QEMU, hence, all those requests will go through
vhost_dev structs (aka, all qeueu pairs), including those that one
time request is needed only, such as VHOST_USER_SET_MEM_TABLE. Thus,
we introduced vhost_user_one_time_request() to avoid such case.
So, good question, and we may need add it to the "one time request"
group, Marc?
And FYI, for queue-pair (or vring) request, there should be an index
in the payload, to point to the right vring. If not, it normally
means a global request, that _may_ need be sent once only.
--yliu
More information about the dev
mailing list