Hi Dan,

Pktgen binary in DTS was built from internal branch when it hasn’t been up streamed.  

Because of the binary was built on x86 Xeon platform, I think it cannot be workable for all platform.

Our plan is remove it from DTS and support latest pktgen which build on tester machine by user.

DTS will support both Trex and Pktgen as software packget generator in next release.

 

By now my suggestion is that you can build pktgen by yourself and generate your tgen.tgz.

 

Thanks,

Marvin

 

From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Dan Shimshoni
Sent: Thursday, February 01, 2018 6:56 PM
To: dts@dpdk.org
Subject: [dts] DTS with pktgen crashes

 

 

Hello,

I am trying to run L2FW DTS with pktgen on 

DELL R720 server, and I get "Illegal instruction".

I tried to find the root cause of the problem, and it seems related to

the pktgen binary, to something related to a CPU flag (RTE_CPUFLAG_RTM flag (Transactional memory).

 

I cloned the latest DTS repo, and extracted pktgen 

from it (it is in the dep/tgen.tgz tar file).

My first question is: is this binary created from the 

official pktgen tree ? (in case it is, which version of pktgen is it?) or is it after applying some patches? (the 

reason for this question will be clear soon).

 

Second: when I try to run it as stand alone and look at the core dump, I see the 

following:

 

./pktgen

 

Illegal instruction (core dumped)

 

gdb ./pktgen core

GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.3) 7.7.1

Copyright (C) 2014 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.  Type "show copying"

and "show warranty" for details.

This GDB was configured as "x86_64-linux-gnu".

Type "show configuration" for configuration details.

For bug reporting instructions, please see:

<http://www.gnu.org/software/gdb/bugs/>.

Find the GDB manual and other documentation resources online at:

<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".

Type "apropos word" to search for commands related to "word"...

Reading symbols from ./pktgen...done.

[New LWP 6639]

[Thread debugging using libthread_db enabled]

Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

---Type <return> to continue, or q <return> to quit---

Core was generated by `./pktgen'.

Program terminated with signal SIGILL, Illegal instruction.

#0  0x000000000043417d in rte_cpu_get_flag_enabled (feature=6217008,

    feature@entry=RTE_CPUFLAG_RTM)

    at /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303

303     /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h: No such file or directory.

(gdb) bt

#0  0x000000000043417d in rte_cpu_get_flag_enabled (feature=6217008,

    feature@entry=RTE_CPUFLAG_RTM)

    at /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303

#1  0x00000000004341ae in rte_rtm_init ()

    at /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_spinlock.h:103

#2  0x00000000005d451d in __libc_csu_init ()

#3  0x00007fe2fda1aed5 in __libc_start_main (main=0x433400 <main>,

    argc=1, argv=0x7ffd0c6a5868, init=0x5d44d0 <__libc_csu_init>,

    fini=<optimized out>, rtld_fini=<optimized out>,

    stack_end=0x7ffd0c6a5858) at libc-start.c:246

#4  0x0000000000435385 in _start ()

(gdb)

 

 

- and I get the same issue of "illegal instruction" and the same results also with older 

official DTS releases, like https://dpdk.org/browse/tools/dts/snapshot/dts-17.11.tar.xz

and https://dpdk.org/browse/tools/dts/snapshot/dts-17.05.tar.xz

 

Regards,

Dan