Hi Xie, (2014/12/11 7:04), Xie, Huawei wrote: > This patch set is based on latest vhost. > It fixes vhost-user memory map/unmap alignment issue. > It uses VHOST_USER_GET_VRING_BASE as the message for vhost device stop > in vhost-user. > It uses VHOST_SET_VRING_KICK as the message that tells us vhost device > is ready in vhost-user. > > Tetsuya: > Your abstraction layer hasn't been integrated due to time issue, so now > we support both vhost-cuse and vhost-user, but only one driver could be > registered.
Thanks, I will be able to submit it after merging these patches. > This is not the final patch, and there might be resource leak issue(which is > critical for vhost enabled switch, as vSwitch needs to run endlessly, and > virtio in guest VM and VM itself could be restarted repeatedly. Will take > effort to check if all the memory region has been unmapped, and if all fds > are closed properly in all possible path.) > I have tried to restart virtio-PMD repeatedly and switch between virtio-PMD > and virtio-pci several times, it runs smoothly and no resource leak so far. I agree with your concerns. I will check it also. > There are other features like multiple socket file, client mode to be > supported. > > What if the vhost is terminated due to program error? What if vhost needs to > be upgraded dynamically? How could we reconnect to virtio frontend? That is > very very important feature if you are working on it. :). Yes, now I am working on it. But I haven't finished my work yet. After finishing, I will send my RFC to start discussion. > Please help review. Sure, I will. :) Thanks, Tetsuya > Thanks! > > > > >> -----Original Message----- >> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Huawei Xie >> Sent: Wednesday, December 10, 2014 2:38 PM >> To: dev at dpdk.org >> Cc: haifeng.lin at intel.com >> Subject: [dpdk-dev] [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user support >> >> This patchset refines vhost library to support both vhost-cuse and >> vhost-user. >> >> >> Huawei Xie (12): >> create vhost_cuse directory and move vhost-net-cdev.c to vhost_cuse >> directory >> rename vhost-net-cdev.h as vhost-net.h >> move eventfd_copy logic out from virtio-net.c to vhost-net-cdev.c >> exact copy of host_memory_map from virtio-net.c to new file >> virtio-net-cdev.c >> host_memory_map refine: map partial memory of target process into current >> process >> cuse_set_memory_table is the VHOST_SET_MEMORY_TABLE message handler >> for cuse >> fd management for vhost user >> vhost-user support >> minor fix >> vhost-user memory region map/unmap >> kick/callfd fix >> cleanup when vhost user connection is closed >> >> lib/librte_vhost/Makefile | 5 +- >> lib/librte_vhost/rte_virtio_net.h | 2 + >> lib/librte_vhost/vhost-net-cdev.c | 389 ---------------------- >> lib/librte_vhost/vhost-net-cdev.h | 113 ------- >> lib/librte_vhost/vhost-net.h | 117 +++++++ >> lib/librte_vhost/vhost_cuse/vhost-net-cdev.c | 452 >> ++++++++++++++++++++++++++ >> lib/librte_vhost/vhost_cuse/virtio-net-cdev.c | 349 ++++++++++++++++++++ >> lib/librte_vhost/vhost_cuse/virtio-net-cdev.h | 45 +++ >> lib/librte_vhost/vhost_rxtx.c | 2 +- >> lib/librte_vhost/vhost_user/fd_man.c | 205 ++++++++++++ >> lib/librte_vhost/vhost_user/fd_man.h | 64 ++++ >> lib/librte_vhost/vhost_user/vhost-net-user.c | 423 >> ++++++++++++++++++++++++ >> lib/librte_vhost/vhost_user/vhost-net-user.h | 107 ++++++ >> lib/librte_vhost/vhost_user/virtio-net-user.c | 313 ++++++++++++++++++ >> lib/librte_vhost/vhost_user/virtio-net-user.h | 49 +++ >> lib/librte_vhost/virtio-net.c | 394 ++-------------------- >> lib/librte_vhost/virtio-net.h | 43 +++ >> 17 files changed, 2199 insertions(+), 873 deletions(-) >> delete mode 100644 lib/librte_vhost/vhost-net-cdev.c >> delete mode 100644 lib/librte_vhost/vhost-net-cdev.h >> create mode 100644 lib/librte_vhost/vhost-net.h >> create mode 100644 lib/librte_vhost/vhost_cuse/vhost-net-cdev.c >> create mode 100644 lib/librte_vhost/vhost_cuse/virtio-net-cdev.c >> create mode 100644 lib/librte_vhost/vhost_cuse/virtio-net-cdev.h >> create mode 100644 lib/librte_vhost/vhost_user/fd_man.c >> create mode 100644 lib/librte_vhost/vhost_user/fd_man.h >> create mode 100644 lib/librte_vhost/vhost_user/vhost-net-user.c >> create mode 100644 lib/librte_vhost/vhost_user/vhost-net-user.h >> create mode 100644 lib/librte_vhost/vhost_user/virtio-net-user.c >> create mode 100644 lib/librte_vhost/vhost_user/virtio-net-user.h >> create mode 100644 lib/librte_vhost/virtio-net.h >> >> -- >> 1.8.1.4