<div dir="ltr"><div><br></div><div>Hello,</div><div>I am trying to run L2FW DTS with pktgen on </div><div>DELL R720 server, and I get "Illegal instruction".</div><div>I tried to find the root cause of the problem, and it seems related to</div><div>the pktgen binary, to something related to a CPU flag (<span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">RTE_CPUFLAG_RTM flag (Transactional memory).</span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div>I cloned the latest DTS repo, and extracted pktgen </div><div>from it (it is in the dep/tgen.tgz tar file).</div><div>My first question is: is this binary created from the </div><div>official pktgen tree ? (in case it is, which version of pktgen is it?) or is it after applying some patches? (the </div><div>reason for this question will be clear soon).</div><div><br></div><div>Second: when I try to run it as stand alone and look at the core dump, I see the </div><div>following:</div><div><br></div><div>./pktgen</div><div><br></div><div>Illegal instruction (core dumped)</div><div><br></div><div>gdb ./pktgen core</div><div>GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.3) 7.7.1</div><div>Copyright (C) 2014 Free Software Foundation, Inc.</div><div>License GPLv3+: GNU GPL version 3 or later <<a href="http://gnu.org/licenses/gpl.html">http://gnu.org/licenses/gpl.html</a>></div><div>This is free software: you are free to change and redistribute it.</div><div>There is NO WARRANTY, to the extent permitted by law.  Type "show copying"</div><div>and "show warranty" for details.</div><div>This GDB was configured as "x86_64-linux-gnu".</div><div>Type "show configuration" for configuration details.</div><div>For bug reporting instructions, please see:</div><div><<a href="http://www.gnu.org/software/gdb/bugs/">http://www.gnu.org/software/gdb/bugs/</a>>.</div><div>Find the GDB manual and other documentation resources online at:</div><div><<a href="http://www.gnu.org/software/gdb/documentation/">http://www.gnu.org/software/gdb/documentation/</a>>.</div><div>For help, type "help".</div><div>Type "apropos word" to search for commands related to "word"...</div><div>Reading symbols from ./pktgen...done.</div><div>[New LWP 6639]</div><div>[Thread debugging using libthread_db enabled]</div><div>Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".</div><div>---Type <return> to continue, or q <return> to quit---</div><div>Core was generated by `./pktgen'.</div><div>Program terminated with signal SIGILL, Illegal instruction.</div><div>#0  0x000000000043417d in rte_cpu_get_flag_enabled (feature=6217008,</div><div>    feature@entry=RTE_CPUFLAG_RTM)</div><div>    at /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303</div><div>303     /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h: No such file or directory.</div><div>(gdb) bt</div><div>#0  0x000000000043417d in rte_cpu_get_flag_enabled (feature=6217008,</div><div>    feature@entry=RTE_CPUFLAG_RTM)</div><div>    at /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303</div><div>#1  0x00000000004341ae in rte_rtm_init ()</div><div>    at /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_spinlock.h:103</div><div>#2  0x00000000005d451d in __libc_csu_init ()</div><div>#3  0x00007fe2fda1aed5 in __libc_start_main (main=0x433400 <main>,</div><div>    argc=1, argv=0x7ffd0c6a5868, init=0x5d44d0 <__libc_csu_init>,</div><div>    fini=<optimized out>, rtld_fini=<optimized out>,</div><div>    stack_end=0x7ffd0c6a5858) at libc-start.c:246</div><div>#4  0x0000000000435385 in _start ()</div><div>(gdb)</div><div><br></div><div><br></div><div>- and I get the same issue of "illegal instruction" and the same results also with older </div><div>official DTS releases, like <a href="https://dpdk.org/browse/tools/dts/snapshot/dts-17.11.tar.xz">https://dpdk.org/browse/tools/dts/snapshot/dts-17.11.tar.xz</a></div><div>and <a href="https://dpdk.org/browse/tools/dts/snapshot/dts-17.05.tar.xz">https://dpdk.org/browse/tools/dts/snapshot/dts-17.05.tar.xz</a><br></div><div><br></div><div>Regards,</div><div>Dan </div></div>