[dpdk-dev] [PATCH] vhost: notify guest to fill buffer when there is no buffer

Xu, Qian Q qian.q.xu at intel.com
Mon Feb 9 03:57:32 CET 2015


Haifeng, 
No matter mergeable =0 or 1, I have not met the issue that the vhost-user crash when start VM. Have u changed the code? As you said below, vhost-switch will notify guest after sending every packet, yes, it's the current code, and Huawei, Xie will plan to optimize it in future. Is the crash caused by changing code or any other step? 
What do you want for the vhost-user, changing the notification mechanism? 
Thx. By the way, sth means something. 

-----Original Message-----
From: Linhaifeng [mailto:haifeng.lin at huawei.com] 
Sent: Saturday, February 07, 2015 12:27 PM
To: Xu, Qian Q; Xie, Huawei
Cc: lilijun; liuyongan at huawei.com; dev at dpdk.org
Subject: Re: [dpdk-dev] [PATCH] vhost: notify guest to fill buffer when there is no buffer



On 2015/2/6 13:54, Xu, Qian Q wrote:
> Haifeng
> Are you using the latest dpdk branch with vhost-user patches? I have never met the issue.
> When is the vhost sample crashed? When you start VM or when you run sth in VM? Is your qemu 2.2? How about your memory info? Could you give more details about your steps? 
> 
> 

I have knew why you never met the issue.Because vhost-switch will notify guest after send every packets(performance is not every well).

static inline int __attribute__((always_inline)) virtio_tx_local(struct vhost_dev *vdev, struct rte_mbuf *m) {
	...
	ret = rte_vhost_enqueue_burst(tdev, VIRTIO_RXQ, &m, 1/*you cant try to fill with rx_count*/);	
	..

}

> 
> -----Original Message-----
> From: Linhaifeng [mailto:haifeng.lin at huawei.com]
> Sent: Friday, February 06, 2015 12:02 PM
> To: Xu, Qian Q; Xie, Huawei
> Cc: lilijun; liuyongan at huawei.com; dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] vhost: notify guest to fill buffer 
> when there is no buffer
> 
> 
> 
> On 2015/2/4 9:38, Xu, Qian Q wrote:
>> 4. Launch the VM1 and VM2 with virtio device, note: you need use qemu version>2.1 to enable the vhost-user server's feature. Old qemu such as 1.5,1.6 didn't support it.
>> Below is my VM1 startup command, for your reference, similar for VM2. 
>> /home/qemu-2.2.0/x86_64-softmmu/qemu-system-x86_64 -name us-vhost-vm1 
>> -cpu host -enable-kvm -m 2048 -object 
>> memory-backend-file,id=mem,size=2048M,mem-path=/mnt/huge,share=on 
>> -numa node,memdev=mem -mem-prealloc -smp 2 -drive 
>> file=/home/img/dpdk1-vm1.img -chardev 
>> socket,id=char0,path=/home/dpdk-vhost/vhost-net -netdev 
>> type=vhost-user,id=mynet1,chardev=char0,vhostforce -device 
>> virtio-net-pci,mac=00:00:00:00:00:01, -nographic
>>
>> 5. Then in the VM, you can have the same operations as before, send packet from virtio1 to virtio2. 
>>
>> Pls let me know if any questions, issues. 
> 
> Hi xie & xu
> 
> When I try to start VM vhost-switch crashed.
> 
> VHOST_CONFIG: read message VHOST_USER_SET_MEM_TABLE
> VHOST_CONFIG: mapped region 0 fd:19 to 0xffffffffffffffff sz:0xa0000 
> off:0x0
> VHOST_CONFIG: mmap qemu guest failed.
> VHOST_CONFIG: read message VHOST_USER_SET_VRING_NUM
> VHOST_CONFIG: read message VHOST_USER_SET_VRING_BASE
> VHOST_CONFIG: read message VHOST_USER_SET_VRING_ADDR
> run_dpdk_vhost.sh: line 19:  1854 Segmentation fault      ${RTE_SDK}/examples/vhost/build/app/vhost-switch -c 0x300 -n 4 --huge-dir /dev/hugepages -m 2048 -- -p 0x1 --vm2vm 2 --mergeable 0 --zero-copy 0
> 
> 
> 

--
Regards,
Haifeng



More information about the dev mailing list