[ovs-dev] packets getting dropped in vhostuser port
Kapil Adhikesavalu
kapil20084 at gmail.com
Wed Oct 19 13:18:08 UTC 2016
Hi,
In a PHY-VM-PHY setup, i was using dpdk16.04 + OVS 2.5.90 + qemu 2.4.1,
everything was working fine.
When i upgraded to dpdk 16.07 + ovs 2.6 (branch-2.6) without any change to
the setup/configuration; now all the packets(1200B) are getting dropped at
vhostuser ports. Though, i am able to send traffic from dpdk PHY to PHY
with the same setup,
Is there any qemu version dependency here ? some input on how to debug this
will help.
One thing that looks a bit odd is ovs-vswitchd start logs, i dont see PCI
memory map in the logs(mentioned at the end).
Let me know if any other logs are required.
[root at localhost ~]# ovs-vsctl show
e622d6bc-ea72-4232-a035-e1aa75c5887a
Bridge "br-dpdk0"
Port "dpdk0"
Interface "dpdk0"
type: dpdk
Port "vhost-1-0"
Interface "vhost-1-0"
type: dpdkvhostuser
Port "br-dpdk0"
Interface "br-dpdk0"
type: internal
Bridge "br-dpdk1"
Port "br-dpdk1"
Interface "br-dpdk1"
type: internal
Port "vhost-1-1"
Interface "vhost-1-1"
type: dpdkvhostuser
Port "dpdk1"
Interface "dpdk1"
type: dpdk
[root at localhost ~]# ovs-vsctl -Version
ovs-vsctl (Open vSwitch) 2.6.1
DB Schema 7.14.0
/usr/bin/qemu-system-x86_64 -machine accel=kvm -name ona-vm-1 -S -machine
pc-i440fx-2.4,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp
1,sockets=2,cores=1,threads=1 -uuid d6055bcd-ce40-49a7-a3b9-4852b15fbeb1
-nographic -no-user-config -nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/ona-vm-1.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown
-boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive
file=/var/lib/bristol/vm-1/1.img,if=none,id=drive-ide0-0-0,format=raw,cache=none
-device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive
file=/root/genericx86-64.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw
-device
ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1
-netdev tap,fd=24,id=hostnet0 -device
e1000,netdev=hostnet0,id=net0,mac=52:54:00:ee:9f:c7,bus=pci.0,addr=0x2
-chardev pty,id=charserial0 -device
isa-serial,chardev=charserial0,id=serial0 -chardev
socket,id=char0,path=/var/run/openvswitch/vhost-1-0 -chardev
socket,id=char1,path=/var/run/openvswitch/vhost-1-1 -msg timestamp=on -cpu
Haswell,+pdpe1gb -rtc base=utc -numa node,memdev=mem -nographic
-mem-prealloc -enable-kvm -m 1024 -realtime mlock=off -device
virtio-net-pci,addr=0x04,netdev=net0,mac=92:10:9b:00:01:00,csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off,mrg_rxbuf=off
-device
virtio-net-pci,addr=0x05,netdev=net1,mac=92:10:9b:00:01:01,csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off,mrg_rxbuf=off
-object
memory-backend-file,id=mem,size=1024M,mem-path=/dev/hugepages,share=on
-netdev type=vhost-user,id=net0,chardev=char0,vhostforce -netdev
type=vhost-user,id=net1,chardev=char1,vhostforce -msg timestamp=on
[root at localhost ~]# ovs-appctl dpctl/show
netdev at ovs-netdev:
lookups: hit:1661391 missed:38 lost:0
flows: 7
port 0: ovs-netdev (tap)
port 1: br-dpdk0 (tap)
port 2: br-dpdk1 (tap)
port 3: dpdk0 (dpdk: configured_rx_queues=1,
configured_tx_queues=5, mtu=1500, requested_rx_queues=1,
requested_tx_queues=5)
port 4: dpdk1 (dpdk: configured_rx_queues=1,
configured_tx_queues=5, mtu=1500, requested_rx_queues=1,
requested_tx_queues=5)
port 5: vhost-1-0 (dpdkvhostuser: configured_rx_queues=1,
configured_tx_queues=1, mtu=1500, requested_rx_queues=1,
requested_tx_queues=1)
port 6: vhost-1-1 (dpdkvhostuser: configured_rx_queues=1,
configured_tx_queues=1, mtu=1500, requested_rx_queues=1,
requested_tx_queues=1)
[root at localhost ~]# ovs-appctl dpif-netdev/pmd-rxq-show
pmd thread numa_id 0 core_id 1:
isolated : false
port: vhost-1-1 queue-id: 0
port: dpdk1 queue-id: 0
port: vhost-1-0 queue-id: 0
port: dpdk0 queue-id: 0
Drops: (traffic sent from br-dpdk1's port1 to port 2 to vm)
=====
[root at localhost ~]# ovs-ofctl dump-ports br-dpdk1
OFPST_PORT reply (xid=0x2): 3 ports
port LOCAL: rx pkts=14, bytes=1156, drop=0, errs=0, frame=0, over=0, crc=0
tx pkts=181918, bytes=108422056, drop=0, errs=0, coll=0
port 1: rx pkts=181927, bytes=108422763, drop=0, errs=0, frame=?,
over=?, crc=?
tx pkts=8, bytes=648, drop=0, errs=0, coll=?
port 2: rx pkts=?, bytes=0, drop=0, errs=0, frame=?, over=?, crc=?
tx pkts=?, bytes=0, drop=181923, errs=?, coll=?
[root at localhost ~]# ovs-ofctl dump-ports br-dpdk0
OFPST_PORT reply (xid=0x2): 3 ports
port LOCAL: rx pkts=13, bytes=1066, drop=0, errs=0, frame=0, over=0, crc=0
tx pkts=19, bytes=2296, drop=0, errs=0, coll=0
port 1: rx pkts=22, bytes=3010, drop=0, errs=0, frame=?, over=?, crc=?
tx pkts=23, bytes=2914, drop=0, errs=0, coll=?
port 2: rx pkts=11, bytes=2016, drop=0, errs=0, frame=?, over=?, crc=?
tx pkts=?, bytes=0, drop=21, errs=?, coll=?
ovs-vswitchd start logs: [one thing i observe differently is, earlier with
16.04 + 2.5.90, pci memory mapped values are display which are not seen
with my latest image]
================
PMD: bnxt_rte_pmd_init() called for (null)
EAL: PCI device 0000:00:14.0 on NUMA socket -1
EAL: probe driver: 8086:1f41 rte_igb_pmd
EAL: PCI device 0000:00:14.1 on NUMA socket -1
EAL: probe driver: 8086:1f41 rte_igb_pmd
EAL: PCI device 0000:00:14.2 on NUMA socket -1
EAL: probe driver: 8086:1f41 rte_igb_pmd
EAL: PCI device 0000:00:14.3 on NUMA socket -1
EAL: probe driver: 8086:1f41 rte_igb_pmd
EAL: PCI device 0000:01:00.0 on NUMA socket -1
EAL: probe driver: 8086:1533 rte_igb_pmd
EAL: PCI device 0000:02:00.0 on NUMA socket -1
EAL: probe driver: 8086:1533 rte_igb_pmd
Zone 0: name:<rte_eth_dev_data>, phys:0x23cec40, len:0x30100,
virt:0x7f0c59fcec40, socket_id:0, flags:0
earlier log:
=======
EAL: PCI device 0000:00:14.0 on NUMA socket -1
EAL: probe driver: 8086:1f41 rte_igb_pmd
EAL: PCI memory mapped at 0x7fe64e400000
EAL: PCI memory mapped at 0x7fe64e420000
PMD: eth_igb_dev_init(): port_id 0 vendorID=0x8086 deviceID=0x1f41
EAL: PCI device 0000:00:14.1 on NUMA socket -1
EAL: probe driver: 8086:1f41 rte_igb_pmd
EAL: PCI memory mapped at 0x7fe64e424000
EAL: PCI memory mapped at 0x7fe64e444000
PMD: eth_igb_dev_init(): port_id 1 vendorID=0x8086 deviceID=0x1f41
EAL: PCI device 0000:00:14.2 on NUMA socket -1
EAL: probe driver: 8086:1f41 rte_igb_pmd
EAL: PCI memory mapped at 0x7fe64e448000
EAL: PCI memory mapped at 0x7fe64e468000
PMD: eth_igb_dev_init(): port_id 2 vendorID=0x8086 deviceID=0x1f41
EAL: PCI device 0000:00:14.3 on NUMA socket -1
EAL: probe driver: 8086:1f41 rte_igb_pmd
EAL: PCI memory mapped at 0x7fe64e46c000
EAL: PCI memory mapped at 0x7fe64e48c000
Regards
Kapil.
More information about the dev
mailing list