[dpdk-dev] [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user support

2015-01-26 Thread Xie, Huawei
> -Original Message-
> From: Linhaifeng [mailto:haifeng.lin at huawei.com]
> Sent: Friday, January 23, 2015 4:17 PM
> To: Xie, Huawei; dev at dpdk.org
> Cc: haifeng.lin at intel.com
> Subject: Re: [dpdk-dev] [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user
> support
> 
> Hi, Xie
> 
> could you test vhost-user with follow numa node xml:
> 2097152
>   
> 
>   
>   
> 
>   
> 
> 
> I cann't receive data from VM with above xml.
> 

1. 
I guess you want to configure numa memory for guest, and the xml should be:


, right?
Otherwise you are specifying the same memdev id, which cause qemu  fail to boot.

2.
>From the following output, qemu uses two hugepage files to map guest memory, \
while we receive two fds "pointing to the same hugepage file".
This should be a qemu bug.
I recall there is bug related to memory mapping with multiple node, right?
We will recommend customers not  to configure multiple memory node in guest 
until the bug is fixed in qemu.

# ls /proc/`pgrep qemu`/fd -l | grep huge
lrwx--. 1 root root 64 Jan 25 23:09 7 -> 
/mnt/huge/qemu_back_mem._objects_mem0.UfvViC (deleted)
lrwx--. 1 root root 64 Jan 25 23:09 8 -> 
/mnt/huge/qemu_back_mem._objects_mem1.kuX5tu (deleted)


# cat /proc/`pgrep qemu`/maps | grep huge
2aaac000-2aab rw-s  00:20 2674754
/mnt/huge/qemu_back_mem._objects_mem0.UfvViC (deleted)
2aab-2aab4000 rw-s  00:20 2674755
/mnt/huge/qemu_back_mem._objects_mem1.kuX5tu (deleted)

(gdb) p /x *memory.regions at memory.nregions
$21 = {{guest_phys_addr = 0xc, memory_size = 0x7ff4, userspace_addr = 
0x2aaac00c,
mmap_offset = 0xc}, {guest_phys_addr = 0x0, memory_size = 0xa,
userspace_addr = 0x2aaac000, mmap_offset = 0x0}}


#ls -l /proc/`pgrep vhost`/fd | grep qemu_back
lrwx--. 1 root root 64 Jan 25 23:18 22 -> 
/mnt/huge/qemu_back_mem._objects_mem0.UfvViC (deleted)
lrwx--. 1 root root 64 Jan 25 23:18 24 -> 
/mnt/huge/qemu_back_mem._objects_mem0.UfvViC (deleted)


[dpdk-dev] [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user support

2015-01-23 Thread Linhaifeng
Hi, Xie

could you test vhost-user with follow numa node xml:
2097152
  

  
  

  


I cann't receive data from VM with above xml.

On 2014/12/11 5:37, Huawei Xie wrote:
> 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
> 

-- 
Regards,
Haifeng



[dpdk-dev] [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user support

2015-01-07 Thread Qiu, Michael
On 12/18/2014 1:43 AM, Xie, Huawei wrote:
>
>> -Original Message-
>> From: Tetsuya Mukawa [mailto:mukawa at igel.co.jp]
>> Sent: Sunday, December 14, 2014 10:26 PM
>> To: Xie, Huawei; dev at dpdk.org
>> Cc: haifeng.lin at intel.com
>> Subject: Re: [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user support
>>
>> Hi Xie,
>>
>> I've got warnings from checkpatch.pl.
>> Mostly 'over 80 characters' warnings.
>> (But I know these are come from original vhost-example code sometimes.)
>>
>> So far, your patches are RFC, so I haven't check these strictly.
> Thanks.
> I try to, but you know sometimes 'over 80 characters' is unavoidable.

Why unavoidable? I'm very curious :)

>> Thanks,
>> Tetsuya
>>
>> (2014/12/11 6:37), Huawei Xie wrote:
>>> 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
>>>
>



[dpdk-dev] [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user support

2014-12-17 Thread Xie, Huawei


> -Original Message-
> From: Tetsuya Mukawa [mailto:mukawa at igel.co.jp]
> Sent: Sunday, December 14, 2014 10:26 PM
> To: Xie, Huawei; dev at dpdk.org
> Cc: haifeng.lin at intel.com
> Subject: Re: [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user support
> 
> Hi Xie,
> 
> I've got warnings from checkpatch.pl.
> Mostly 'over 80 characters' warnings.
> (But I know these are come from original vhost-example code sometimes.)
> 
> So far, your patches are RFC, so I haven't check these strictly.
Thanks.
I try to, but you know sometimes 'over 80 characters' is unavoidable.
> 
> Thanks,
> Tetsuya
> 
> (2014/12/11 6:37), Huawei Xie wrote:
> > 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
> >



[dpdk-dev] [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user support

2014-12-15 Thread Tetsuya Mukawa
Hi Xie,

I've got warnings from checkpatch.pl.
Mostly 'over 80 characters' warnings.
(But I know these are come from original vhost-example code sometimes.)

So far, your patches are RFC, so I haven't check these strictly.

Thanks,
Tetsuya

(2014/12/11 6:37), Huawei Xie wrote:
> 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
>



[dpdk-dev] [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user support

2014-12-11 Thread Tetsuya Mukawa
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




[dpdk-dev] [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user support

2014-12-11 Thread Huawei Xie
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



[dpdk-dev] [PATCH RFC v2 00/12] lib/librte_vhost: vhost-user support

2014-12-10 Thread Xie, Huawei
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.

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.

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. :).

Please help review.
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