Re: [PATCH v5 resend 03/12] vhost: vring queue setup for multiple queue support
From: Yuanhan Liu <hidden>
Date: 2015-09-22 08:32:14
On Tue, Sep 22, 2015 at 11:10:13AM +0300, Marcel Apfelbaum wrote:
On 09/22/2015 10:31 AM, Yuanhan Liu wrote:quoted
On Mon, Sep 21, 2015 at 08:56:30PM +0300, Marcel Apfelbaum wrote:[...]quoted
quoted
quoted
Hi, I have made 4 cleanup patches few weeks before, including the patch to define kickfd and callfd as int type, and they have already got the ACK from Huawei Xie, and Chuangchun Ouyang. It's likely that they will be merged, hence I made this patchset based on them. This will also answer the question from your another email: can't apply.Hi, Thank you for the response, it makes sense now. T have another issue, maybe you can help. I have some problems making it work with OVS/DPDK backend and virtio-net driver in guest. I am using a simple setup: http://wiki.qemu.org/Features/vhost-user-ovs-dpdk that connects 2 VMs using OVS's dpdkvhostuser ports (regular virtio-net driver in guest, not the PMD driver). The setup worked fine with the prev DPDK MQ implementation (V4), however on this one the traffic stops once I set queues=n in guest.Hi, Could you be more specific about that? It also would be helpful if you could tell me the steps, besides those setup steps you mentioned in the qemu wiki and this email, you did for testing.Hi, Thank you for your help. I am sorry the wiki is not enough, I'll be happy to add all the missing parts. In the meantime maybe you can tell me where the problem is, I also suggest to post here the output of journalctl command. We only need a regular machine and we want traffic between 2 VMs. I'll try to summarize the steps: 1. Be sure you have enough hugepages enabled (2M pages are enough) and mounted. 2. Configure and start OVS following the wiki - we only want one bridge with 2 dpdkvhostuser ports. 3. Start VMs using the wiki command line - check journalctl for possible errors. You can use journalctl --since `date +%T --date="-10 minutes"` to see only last 10 minutes. 4. Configure the guests IPs. - Disable the Network Manager as described bellow in the mail. 5. At this point you should be able to ping between guests. Please let me know if you have any problem until this point. I'll be happy to help. Please point any special steps you made that are not in the WIKI. The journalctl logs would also help. Does the ping between VMS work now?
Yes, it works, too. I can ping the other vm inside a vm.
[root@dpdk-kvm ~]# ethtool -l eth0
Channel parameters for eth0:
Pre-set maximums:
RX: 0
TX: 0
Other: 0
Combined: 2
Current hardware settings:
RX: 0
TX: 0
Other: 0
Combined: 2
[root@dpdk-kvm ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.11 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::5054:ff:fe12:3459 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:12:34:59 txqueuelen 1000 (Ethernet)
RX packets 56 bytes 5166 (5.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 84 bytes 8303 (8.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@dpdk-kvm ~]# ping 192.168.100.10
PING 192.168.100.10 (192.168.100.10) 56(84) bytes of data.
64 bytes from 192.168.100.10: icmp_seq=1 ttl=64 time=0.213 ms
64 bytes from 192.168.100.10: icmp_seq=2 ttl=64 time=0.094 ms
64 bytes from 192.168.100.10: icmp_seq=3 ttl=64 time=0.246 ms
64 bytes from 192.168.100.10: icmp_seq=4 ttl=64 time=0.153 ms
64 bytes from 192.168.100.10: icmp_seq=5 ttl=64 time=0.104 ms
^CIf yes, please let me know and I'll go over MQ enabling.
I'm just wondering why it doesn't work on your side.
quoted
I had a very rough testing based on your test guides, I indeed found an issue: the IP address assigned by "ifconfig" disappears soon in the first few times and after about 2 or 3 times reset, it never changes. (well, I saw that quite few times before while trying different QEMU net devices. So, it might be a system configuration issue, or something else?)You are right, this is a guest config issue, I think you should disable NetworkManager
Yeah, I figured it out by my self, and it worked when I hardcoded it at /etc/sysconfig/network-scripts/ifcfg-eth0.
for static IP addresses. Please use only the virtio-net device. You cant try this: sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager
Thanks for the info and tip!
quoted
Besides that, it works, say, I can wget a big file from host.The target here is traffic between 2 VMs. We want to be able to ping (for example) between VMS when MQ > 1 is enabled on both guests: - ethtool -L eth0 combined <queues nr, the same as QEMU>
As you can see from my command log, I did so and it worked :)
Thank you again for the involvement, this is very much appreciated!
Welcome! I need fix it if there is a bug. --yliu