Public bug reported:

== Comment: #0 - Gowrishankar Muthukrishnan <[email protected]> - 
2016-09-30 04:50:25 ==
---Problem Description---

Sample application 'ip_pipeline' crashes with rte_panic as below due to dlopen()
failing in rte_eal_init.


$ /usr/share/dpdk/examples/ip_pipeline/build/ip_pipeline -f 
/usr/share/dpdk/examples/ip_pipeline/config/l3fwd.cfg -p 0x3 
[APP] Initializing CPU core map ...
[APP] CPU core mask = 0x0000000000000011
[APP] Initializing EAL ...
Aborted

More backtrace/verbose info with gdb (after also adding -l 2 after -p
0x3):

(gdb) 
Starting program: /usr/share/dpdk/examples/ip_pipeline/build/ip_pipeline -f 
/usr/share/dpdk/examples/ip_pipeline/config/l3fwd.cfg -p 0x3 -l 2
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/powerpc64le-linux-gnu/libthread_db.so.1".
[APP] Initializing CPU core map ...
Socket 0:
[0] = [ 0 (0)  1 (0)  2 (0)  3 (0) ]
[1] = [ 4 (0)  5 (0)  6 (0)  7 (0) ]
[2] = [ 8 (8)  9 (8)  10 (8)  11 (8) ]
[3] = [ 12 (8)  13 (8)  14 (8)  15 (8) ]
Socket 1:
[0] = [ 16 (16)  17 (16)  18 (16)  19 (16) ]
[1] = [ 20 (16)  21 (16)  22 (16)  23 (16) ]
[2] = [ 24 (24)  25 (24)  26 (24)  27 (24) ]
[3] = [ 28 (24)  29 (24)  30 (24)  31 (24) ]
[APP] CPU core mask = 0x0000000000000011
[APP] Initializing EAL ...
[APP] EAL arguments: "-c11 -n4 --log-level=2 -d 
/usr/lib/powerpc64le-linux-gnu/librte_pmd_virtio.so --socket-mem=1024 -- "

Program received signal SIGABRT, Aborted.
0x00003fffb7a0e640 in __libc_signal_restore_set (set=0x3fffffffe8c0)
    at ../sysdeps/unix/sysv/linux/nptl-signals.h:79
79      ../sysdeps/unix/sysv/linux/nptl-signals.h: No such file or directory.
(gdb) bt
#0  0x00003fffb7a0e640 in __libc_signal_restore_set (set=0x3fffffffe8c0)
    at ../sysdeps/unix/sysv/linux/nptl-signals.h:79
#1  __GI_raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:55
#2  0x00003fffb7a10c70 in __GI_abort () at abort.c:89
#3  0x00003fffb7c557e8 in __rte_panic (funcname=<optimized out>, 
    format=0x3fffb7c6cd00 "Cannot init plugins\n%.0s") at 
./lib/librte_eal/linuxapp/eal/eal_debug.c:86
#4  0x00003fffb7c57218 in rte_eal_init (argc=<optimized out>, argv=<optimized 
out>)
    at ./lib/librte_eal/linuxapp/eal/eal.c:847
#5  0x0000000020022a10 in app_init_eal (app=0x204d2100 <app>) at 
/usr/share/dpdk/examples/ip_pipeline/init.c:305
#6  0x0000000020027314 in app_init (app=0x204d2100 <app>) at 
/usr/share/dpdk/examples/ip_pipeline/init.c:1750
#7  0x0000000020008818 in main (argc=7, argv=0x3ffffffff4c8) at 
/usr/share/dpdk/examples/ip_pipeline/main.c:55
(gdb) 

Interestingly, most of other apps do not find dlopen failing, as they directly
call rte_eal_init in their main. ip_pipeline do one step extra of wrapping up
it due to its configuration file aid to run this app. Its app_init_eal creates
actual EAL params by parsing config file given.

I already posted a minor typo patch which is merged in deb_dpdk, so please 
ensure
deb you test carries it:
http://dpdk.org/dev/patchwork/patch/15995
 
 
---uname output---
Linux 9-114-219-126-ukvm1 4.4.0-9136-generic #55-Ubuntu SMP Fri Aug 26 05:56:24 
UTC 2016 ppc64le ppc64le ppc64le GNU/Linux
 
Machine Type = P8 LE 
 
---Debugger---
A debugger is not configured
 
---Steps to Reproduce---
 (all as root)
1. install dpdk-doc
2. cd  /usr/share/dpdk
   source dpdk-sdk-env.sh
3. cd examples/ip_pipeline
4. if init.c does not carry above patchwork fix, apply manually.
5. make
6. do below if igb_uio to be tested, else ensure your target pmd loaded.
   modprobe igb_uio
   dpdk-devbind --bind=igb_uio <PCI ID 1>
   dpdk-devbind --bind=igb_uio <PCI ID 2>
   check testpmd probes the above ports
7. Adjust config/l3fwd.cfg for only two pmd ports, as below:
        [EAL]
        log_level = 2
        socket_mem = 1024
        d = /usr/lib/powerpc64le-linux-gnu/librte_pmd_virtio.so
        
        [PIPELINE0]
        type = MASTER
        core = 0
        
        [PIPELINE1]
        type = ROUTING
        core = 1
        pktq_in = RXQ0.0 RXQ1.0
        pktq_out = TXQ0.0 TXQ1.0 SINK0
        encap = ethernet
        ;encap = ethernet_qinq
        ;encap = ethernet_mpls
        ip_hdr_offset = 270
        
8. build/ip_pipeline -f config/l3fwd.cfg -p 0x3
   ip_pipeline should not panic here.
 
Userspace tool common name: dpdk 
 
The userspace tool has the following bit modes: both 

Userspace rpm: dpdk-doc

Userspace tool obtained from project website:  na

** Affects: dpdk (Ubuntu)
     Importance: Undecided
     Assignee: Taco Screen team (taco-screen-team)
         Status: New


** Tags: architecture-ppc64le bugnameltc-147117 severity-medium 
targetmilestone-inin1610

** Tags added: architecture-ppc64le bugnameltc-147117 severity-medium
targetmilestone-inin1610

** Changed in: ubuntu
     Assignee: (unassigned) => Taco Screen team (taco-screen-team)

** Package changed: ubuntu => dpdk (Ubuntu)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1630119

Title:
  dpdk ip_pipeline app unable to dlopen target pmd lib .so

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dpdk/+bug/1630119/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to