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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to