Hi all, I used gdb to trace tx procedure, but it returned at "return ops->enqueue(mp, obj_table, n)", did not go deep anymore. This the error drop node procedure. Below is stack info.
dpdk_rte_pktmbuf_free (b=<optimized out>, vm=<optimized out>) at /home/vbras/pack/VBRASV100R001_new_trunk/vpp1704/build-data/../src/plugins/dpdk/buffer.c:391 391 dpdk_rte_pktmbuf_free (vm, b); (gdb) rte_pktmbuf_free_seg (m=<optimized out>) at /home/vbras/pack/VBRASV100R001_new_trunk/vpp1704/build-data/../src/plugins/dpdk/buffer.c:391 391 dpdk_rte_pktmbuf_free (vm, b); (gdb) __rte_mbuf_raw_free (m=<optimized out>) at /home/vbras/pack/VBRASV100R001_new_trunk/vpp1704/build-data/../src/plugins/dpdk/buffer.c:391 391 dpdk_rte_pktmbuf_free (vm, b); (gdb) rte_mempool_put (obj=<optimized out>, mp=<optimized out>) at /home/vbras/pack/VBRASV100R001_new_trunk/vpp1704/build-data/../src/plugins/dpdk/buffer.c:391 391 dpdk_rte_pktmbuf_free (vm, b); (gdb) rte_mempool_put_bulk (n=<optimized out>, obj_table=<optimized out>, mp=<optimized out>) at /home/vbras/pack/VBRASV100R001_new_trunk/vpp1704/build-data/../src/plugins/dpdk/buffer.c:391 391 dpdk_rte_pktmbuf_free (vm, b); (gdb) rte_mempool_generic_put (flags=<optimized out>, cache=<optimized out>, n=<optimized out>, obj_table=<optimized out>, mp=<optimized out>) at /home/vbras/pack/VBRASV100R001_new_trunk/vpp1704/build-data/../src/plugins/dpdk/buffer.c:391 391 dpdk_rte_pktmbuf_free (vm, b); (gdb) __mempool_generic_put (cache=<optimized out>, n=<optimized out>, obj_table=<optimized out>, mp=<optimized out>) at /home/vbras/pack/VBRASV100R001_new_trunk/vpp1704/build-data/../src/plugins/dpdk/buffer.c:391 391 dpdk_rte_pktmbuf_free (vm, b); (gdb) rte_mempool_ops_enqueue_bulk (n=<optimized out>, obj_table=<optimized out>, mp=<optimized out>) at /home/vbras/pack/VBRASV100R001_new_trunk/vpp1704/build-root/install-vpp-native/dpdk/include/dpdk/rte_mempool.h:495 495return ops->enqueue(mp, obj_table, n); (gdb) rte_pktmbuf_free_seg (m=<optimized out>) at /home/vbras/pack/VBRASV100R001_new_trunk/vpp1704/build-root/install-vpp-native/dpdk/include/dpdk/rte_mbuf.h:1242 1242if (likely(NULL != (m = __rte_pktmbuf_prefree_seg(m)))) { (gdb) At 2018-07-27 17:05:29, "xulang" <xlang...@163.com> wrote: Hi Ray, It seems that it does not work, but I am not about that, please check this for me. VPP.mk: vpp_uses_external_dpdk = yes vpp_dpdk_inc_dir = /usr/include/dpdk vpp_dpdk_lib_dir = /usr/lib # vpp_dpdk_shared_lib = yes DPDK: export RTE_SDK=/home/vbras/pack/VBRASV100R001_new_trunk/vpp1704/dpdk/dpdktest/dpdk-17.02 export RTE_TARGET=x86_64-native-linuxapp-gcc export DESTDIR=/usr make install T=$RTE_TARGET VPP: make V=0 TAG=vpp PLATFORM=vpp install-deb MY question is below: I added seven interfaces to one bridge and send packets to that bridge. The tx packets are correct, because I captured them with Wireshark on the host system. But there is something wrong with rte_ring. No one put rte_mbuf back to the rte_ring, the PROD's head and tail are always 16384. Below is some information, If you guys need more, please let me know. (gdb) p *((struct rte_ring*)(((struct rte_mempool*)dpdk_main->pktmbuf_pools[0])->pool_data)) $3 = { name = "MP_mbuf_pool_socket0", '\000' <repeats 11 times>, flags = 0, memzone = 0x7ffff7eb3d00, prod = { watermark = 32768, sp_enqueue = 0, size = 32768, mask = 32767, head = 16384, tail = 16384 }, cons = { sc_dequeue = 0, size = 32768, mask = 32767, head = 10250, tail = 10250 }, ring = 0x7fff357560c0 } root@vBRAS:~# vppctl show int Name Idx State Counter Count GigabitEthernet0/0/0 1 down GigabitEthernet0/0/1 2 up GigabitEthernet0/0/2 3 up rx packets 4 rx bytes 621 tx packets 150 tx bytes 7812 GigabitEthernet0/0/3 4 up rx packets 1 rx bytes 243 tx packets 153 tx bytes 8190 GigabitEthernet0/0/4 5 up rx packets 1 rx bytes 243 tx packets 153 tx bytes 8190 GigabitEthernet0/0/5 6 up rx packets 6 rx bytes 543 tx packets 148 tx bytes 7890 GigabitEthernet0/0/6 7 up rx packets 1 rx bytes 243 tx packets 153 tx bytes 8190 GigabitEthernet0/0/7 8 up rx packets 1 rx bytes 243 tx packets 153 tx bytes 8190 GigabitEthernet0/0/8 9 up rx packets 2 rx bytes 501 tx packets 152 tx bytes 7932 Vlan-interface1 21 up rx packets 16 rx bytes 2413 tx packets 276 tx bytes 11592 drops 154 ip4 9 gre0 10 down host-vge0 11 down host-vge1 12 up host-vge2 13 up host-vge3 14 up host-vge4 15 up host-vge5 16 up host-vge6 17 up host-vge7 18 up host-vge8 19 up host-vvlan1 20 up rx packets 139 rx bytes 5856 drops 139 ip4 1 At 2018-07-27 10:54:03, "Ray Cai" <ru...@microsoft.com> wrote: Hi Xiao: By changing dpdk driver, do you mean that you changed code in DPDK and wants to compile VPP with modified DPDK? If so, I recommend checking out the option to compile VPP with “vpp_uses_external_dpdk = yes”. Here are the steps I used: 1) Compiled DPDK with EXTRA_CFLAGS’-fPIC –pie’ and have a DESTDIR for the compiled header/libs using whatever configuration of your choosing. 2) Modify build-data/platforms/vpp.mk to a. Vpp_uses_external_dpdk = yes b. Vpp_dpdk_inc_dir = <DESTDIR from step1, absolute path>/include/dpdk c. Vpp_dpdk_lib_dir = <DESTDIR from step1, absolute path>/lib 3) Then build vpp and create packages. This way the external dpdk is compiled as static lib and linked directly into vpp binary. At the end you should see a few packages in build-root and they would contain everything you need. Just install them and they should be running with your modified DPDK. I hope the instructions help. Thanks, -Ray From:vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of xulang Sent: Thursday, July 26, 2018 5:58 PM To:vpp-dev@lists.fd.io Subject: [vpp-dev] dpdk & vpp Hi all, I have changed dpdk drivers, how can I make that change effective? The cmd "dpkg -l |grep vpp" does not include anything related to dpdk. I am look forward to hearing from u. Regards, xiaoC
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#9947): https://lists.fd.io/g/vpp-dev/message/9947 Mute This Topic: https://lists.fd.io/mt/23828481/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-