* [dpdk-dev] Running DPDK Binaries on a different Target @ 2015-04-07 11:58 Venkat Thummala 2015-04-07 12:00 ` Venkat Thummala 0 siblings, 1 reply; 9+ messages in thread From: Venkat Thummala @ 2015-04-07 11:58 UTC (permalink / raw) To: dev Hi, I have built a DPDK application [based on version 2.0] and run on the native machine successfully. I have tried running the binary on a different machine, but it resulted in a CRASH with the following back trace. Please find the CPU info of the machines from the attachment. cpuinfo-1 - Native Machine cpuinfo-2 - Non Native Machine Could someone please help me in understanding the issue here and making it work? Regards Venkat Program terminated with signal SIGILL, Illegal instruction. #0 0x00000000004209f2 in rte_cpu_get_flag_enabled (feature=2147483656, feature@entry=RTE_CPUFLAG_EM64T) at /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 303 return (regs[feat->reg] >> feat->bit) & 1; (gdb) bt #0 0x00000000004209f2 in rte_cpu_get_flag_enabled (feature=2147483656, feature@entry=RTE_CPUFLAG_EM64T) at /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 #1 0x0000000000420a1b in rte_hash_crc_set_alg (alg=6 '\006') at /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:429 #2 rte_hash_crc_init_alg () at /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:445 #3 0x000000000054968d in __libc_csu_init () #4 0x00007fc3ca474e55 in group_nodes_into_DFAstates (dests_ch=0x940f507ab10ff0c8, dests_node=0x4a8b44de74c084c0, state=0x4420528b48a8ebc9, dfa=<optimized out>) at regexec.c:3614 #5 build_trtable (dfa=0x840fc139c0014468, state=0x4420528b48a8ebc9) at regexec.c:3354 #6 0x41d589495541f689 in ?? () #7 0x00251630258d4c54 in ?? () #8 0x002517302d8d4855 in ?? () #9 0xc148db31e5294c53 in ?? () #10 0x65e808ec834803fd in ?? () #11 0x1e74ed8548ffed48 in ?? () #12 0x0000000000841f0f in ?? () ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] Running DPDK Binaries on a different Target 2015-04-07 11:58 [dpdk-dev] Running DPDK Binaries on a different Target Venkat Thummala @ 2015-04-07 12:00 ` Venkat Thummala 2015-04-07 14:35 ` Neil Horman 0 siblings, 1 reply; 9+ messages in thread From: Venkat Thummala @ 2015-04-07 12:00 UTC (permalink / raw) To: dev Attaching the CPU Info. On 7 April 2015 at 17:28, Venkat Thummala <venkat.thummala.1978@gmail.com> wrote: > Hi, > > I have built a DPDK application [based on version 2.0] and run on the > native machine successfully. > > I have tried running the binary on a different machine, but it resulted in > a CRASH with the following back trace. > > Please find the CPU info of the machines from the attachment. > > cpuinfo-1 - Native Machine > cpuinfo-2 - Non Native Machine > > Could someone please help me in understanding the issue here and making it > work? > > Regards > Venkat > > Program terminated with signal SIGILL, Illegal instruction. > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled (feature=2147483656, > feature@entry=RTE_CPUFLAG_EM64T) > at > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > 303 return (regs[feat->reg] >> feat->bit) & 1; > (gdb) bt > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled (feature=2147483656, > feature@entry=RTE_CPUFLAG_EM64T) > at > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > #1 0x0000000000420a1b in rte_hash_crc_set_alg (alg=6 '\006') > at > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:429 > #2 rte_hash_crc_init_alg () at > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:445 > #3 0x000000000054968d in __libc_csu_init () > #4 0x00007fc3ca474e55 in group_nodes_into_DFAstates > (dests_ch=0x940f507ab10ff0c8, dests_node=0x4a8b44de74c084c0, > state=0x4420528b48a8ebc9, > dfa=<optimized out>) at regexec.c:3614 > #5 build_trtable (dfa=0x840fc139c0014468, state=0x4420528b48a8ebc9) at > regexec.c:3354 > #6 0x41d589495541f689 in ?? () > #7 0x00251630258d4c54 in ?? () > #8 0x002517302d8d4855 in ?? () > #9 0xc148db31e5294c53 in ?? () > #10 0x65e808ec834803fd in ?? () > #11 0x1e74ed8548ffed48 in ?? () > #12 0x0000000000841f0f in ?? () > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] Running DPDK Binaries on a different Target 2015-04-07 12:00 ` Venkat Thummala @ 2015-04-07 14:35 ` Neil Horman 2015-04-08 8:33 ` Venkat Thummala 0 siblings, 1 reply; 9+ messages in thread From: Neil Horman @ 2015-04-07 14:35 UTC (permalink / raw) To: Venkat Thummala; +Cc: dev On Tue, Apr 07, 2015 at 05:30:15PM +0530, Venkat Thummala wrote: > Attaching the CPU Info. > > On 7 April 2015 at 17:28, Venkat Thummala <venkat.thummala.1978@gmail.com> > wrote: > > > Hi, > > > > I have built a DPDK application [based on version 2.0] and run on the > > native machine successfully. > > > > I have tried running the binary on a different machine, but it resulted in > > a CRASH with the following back trace. > > > > Please find the CPU info of the machines from the attachment. > > > > cpuinfo-1 - Native Machine > > cpuinfo-2 - Non Native Machine > > > > Could someone please help me in understanding the issue here and making it > > work? > > > > Regards > > Venkat > > > > Program terminated with signal SIGILL, Illegal instruction. > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled (feature=2147483656, > > feature@entry=RTE_CPUFLAG_EM64T) > > at > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > 303 return (regs[feat->reg] >> feat->bit) & 1; Looks like this somehow compiled into an instruction that the native system understands but the system you're running on doesn't. disassemble the code here to see what instruction that is to confirm, then you either need to: 1) Change the machine you're compiling for to be more specific to your target system or 2) Understand that the hardware you're targeting doesn't support dpdk Neil > > (gdb) bt > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled (feature=2147483656, > > feature@entry=RTE_CPUFLAG_EM64T) > > at > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > #1 0x0000000000420a1b in rte_hash_crc_set_alg (alg=6 '\006') > > at > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:429 > > #2 rte_hash_crc_init_alg () at > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:445 > > #3 0x000000000054968d in __libc_csu_init () > > #4 0x00007fc3ca474e55 in group_nodes_into_DFAstates > > (dests_ch=0x940f507ab10ff0c8, dests_node=0x4a8b44de74c084c0, > > state=0x4420528b48a8ebc9, > > dfa=<optimized out>) at regexec.c:3614 > > #5 build_trtable (dfa=0x840fc139c0014468, state=0x4420528b48a8ebc9) at > > regexec.c:3354 > > #6 0x41d589495541f689 in ?? () > > #7 0x00251630258d4c54 in ?? () > > #8 0x002517302d8d4855 in ?? () > > #9 0xc148db31e5294c53 in ?? () > > #10 0x65e808ec834803fd in ?? () > > #11 0x1e74ed8548ffed48 in ?? () > > #12 0x0000000000841f0f in ?? () > > > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] Running DPDK Binaries on a different Target 2015-04-07 14:35 ` Neil Horman @ 2015-04-08 8:33 ` Venkat Thummala 2015-04-08 11:47 ` Neil Horman 0 siblings, 1 reply; 9+ messages in thread From: Venkat Thummala @ 2015-04-08 8:33 UTC (permalink / raw) To: Neil Horman; +Cc: dev Hi Neil, Thanks for the quick response. The issue got fixed by setting CONFIG_RTE_MACHINE to "default". Though, this fixed the CRASH issue, I am observing inconsistent behavior with ACL tables. With the same traffic and same ACL rule, on ONE machine the ACL rule is being HIT, where as on the OTHER machine the rule never HITS. Is this because of the "default" machine option? Regards Venkat On 7 April 2015 at 20:05, Neil Horman <nhorman@tuxdriver.com> wrote: > On Tue, Apr 07, 2015 at 05:30:15PM +0530, Venkat Thummala wrote: > > Attaching the CPU Info. > > > > On 7 April 2015 at 17:28, Venkat Thummala < > venkat.thummala.1978@gmail.com> > > wrote: > > > > > Hi, > > > > > > I have built a DPDK application [based on version 2.0] and run on the > > > native machine successfully. > > > > > > I have tried running the binary on a different machine, but it > resulted in > > > a CRASH with the following back trace. > > > > > > Please find the CPU info of the machines from the attachment. > > > > > > cpuinfo-1 - Native Machine > > > cpuinfo-2 - Non Native Machine > > > > > > Could someone please help me in understanding the issue here and > making it > > > work? > > > > > > Regards > > > Venkat > > > > > > Program terminated with signal SIGILL, Illegal instruction. > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled (feature=2147483656, > > > feature@entry=RTE_CPUFLAG_EM64T) > > > at > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > > 303 return (regs[feat->reg] >> feat->bit) & 1; > > Looks like this somehow compiled into an instruction that the native system > understands but the system you're running on doesn't. disassemble the > code here > to see what instruction that is to confirm, then you either need to: > > 1) Change the machine you're compiling for to be more specific to your > target > system > > or > > 2) Understand that the hardware you're targeting doesn't support dpdk > > Neil > > > > (gdb) bt > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled (feature=2147483656, > > > feature@entry=RTE_CPUFLAG_EM64T) > > > at > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > > #1 0x0000000000420a1b in rte_hash_crc_set_alg (alg=6 '\006') > > > at > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:429 > > > #2 rte_hash_crc_init_alg () at > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:445 > > > #3 0x000000000054968d in __libc_csu_init () > > > #4 0x00007fc3ca474e55 in group_nodes_into_DFAstates > > > (dests_ch=0x940f507ab10ff0c8, dests_node=0x4a8b44de74c084c0, > > > state=0x4420528b48a8ebc9, > > > dfa=<optimized out>) at regexec.c:3614 > > > #5 build_trtable (dfa=0x840fc139c0014468, state=0x4420528b48a8ebc9) at > > > regexec.c:3354 > > > #6 0x41d589495541f689 in ?? () > > > #7 0x00251630258d4c54 in ?? () > > > #8 0x002517302d8d4855 in ?? () > > > #9 0xc148db31e5294c53 in ?? () > > > #10 0x65e808ec834803fd in ?? () > > > #11 0x1e74ed8548ffed48 in ?? () > > > #12 0x0000000000841f0f in ?? () > > > > > > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] Running DPDK Binaries on a different Target 2015-04-08 8:33 ` Venkat Thummala @ 2015-04-08 11:47 ` Neil Horman 2015-04-09 9:07 ` Venkat Thummala 0 siblings, 1 reply; 9+ messages in thread From: Neil Horman @ 2015-04-08 11:47 UTC (permalink / raw) To: Venkat Thummala; +Cc: dev On Wed, Apr 08, 2015 at 02:03:05PM +0530, Venkat Thummala wrote: > Hi Neil, > > Thanks for the quick response. > > The issue got fixed by setting CONFIG_RTE_MACHINE to "default". > Default is the lowest common demoninator system that dpdk supports (core2 duo). So if you're system is superior to that processor, you're ok. > Though, this fixed the CRASH issue, I am observing inconsistent behavior > with ACL tables. > > With the same traffic and same ACL rule, on ONE machine the ACL rule is > being HIT, where as on the OTHER machine the rule never HITS. > > Is this because of the "default" machine option? > Possibly, the machine type changes the method of lookup for ACL rules, though it should remain consistent in terms of which rules are hit. > Regards > Venkat > > > On 7 April 2015 at 20:05, Neil Horman <nhorman@tuxdriver.com> wrote: > > > On Tue, Apr 07, 2015 at 05:30:15PM +0530, Venkat Thummala wrote: > > > Attaching the CPU Info. > > > > > > On 7 April 2015 at 17:28, Venkat Thummala < > > venkat.thummala.1978@gmail.com> > > > wrote: > > > > > > > Hi, > > > > > > > > I have built a DPDK application [based on version 2.0] and run on the > > > > native machine successfully. > > > > > > > > I have tried running the binary on a different machine, but it > > resulted in > > > > a CRASH with the following back trace. > > > > > > > > Please find the CPU info of the machines from the attachment. > > > > > > > > cpuinfo-1 - Native Machine > > > > cpuinfo-2 - Non Native Machine > > > > > > > > Could someone please help me in understanding the issue here and > > making it > > > > work? > > > > > > > > Regards > > > > Venkat > > > > > > > > Program terminated with signal SIGILL, Illegal instruction. > > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled (feature=2147483656, > > > > feature@entry=RTE_CPUFLAG_EM64T) > > > > at > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > > > 303 return (regs[feat->reg] >> feat->bit) & 1; > > > > Looks like this somehow compiled into an instruction that the native system > > understands but the system you're running on doesn't. disassemble the > > code here > > to see what instruction that is to confirm, then you either need to: > > > > 1) Change the machine you're compiling for to be more specific to your > > target > > system > > > > or > > > > 2) Understand that the hardware you're targeting doesn't support dpdk > > > > Neil > > > > > > (gdb) bt > > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled (feature=2147483656, > > > > feature@entry=RTE_CPUFLAG_EM64T) > > > > at > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > > > #1 0x0000000000420a1b in rte_hash_crc_set_alg (alg=6 '\006') > > > > at > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:429 > > > > #2 rte_hash_crc_init_alg () at > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:445 > > > > #3 0x000000000054968d in __libc_csu_init () > > > > #4 0x00007fc3ca474e55 in group_nodes_into_DFAstates > > > > (dests_ch=0x940f507ab10ff0c8, dests_node=0x4a8b44de74c084c0, > > > > state=0x4420528b48a8ebc9, > > > > dfa=<optimized out>) at regexec.c:3614 > > > > #5 build_trtable (dfa=0x840fc139c0014468, state=0x4420528b48a8ebc9) at > > > > regexec.c:3354 > > > > #6 0x41d589495541f689 in ?? () > > > > #7 0x00251630258d4c54 in ?? () > > > > #8 0x002517302d8d4855 in ?? () > > > > #9 0xc148db31e5294c53 in ?? () > > > > #10 0x65e808ec834803fd in ?? () > > > > #11 0x1e74ed8548ffed48 in ?? () > > > > #12 0x0000000000841f0f in ?? () > > > > > > > > > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] Running DPDK Binaries on a different Target 2015-04-08 11:47 ` Neil Horman @ 2015-04-09 9:07 ` Venkat Thummala 2015-04-09 11:37 ` Ananyev, Konstantin 0 siblings, 1 reply; 9+ messages in thread From: Venkat Thummala @ 2015-04-09 9:07 UTC (permalink / raw) To: Neil Horman; +Cc: dev I have the following ACL rule configured in the ACL Table. Priority - 20 SIP - 0 SIP MASK - 0 DIP - 0 DIP MASK - 0 PROTO - 17 [UDP] PROTO MASK - 0xFF SPORT - 0 SPORT RANGE - 0xFFFF DPORT - 0 DPORT RANGE - 0xFFFF And pumping UDP traffic. On Machine 1, it always HITS the rule as expected. But On Machine 2, the same traffic never HITS the rule. I have tried this with both SCALAR and SSE classification algorithms, but the result is same. Could some one, please help me on this? DPDK Version: =========== 2.0 Machine 1 CPU INFO: ================ vendor_id : GenuineIntel cpu family : 6 model : 69 model name : Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz stepping : 1 microcode : 0x16 cpu MHz : 759.000 cache size : 3072 KB physical id : 0 siblings : 4 core id : 1 cpu cores : 2 apicid : 3 initial apicid : 3 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid bogomips : 4589.70 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management: MACHINE 1 OS: ============= Linux vthummala-HP-Pavilion-15-Notebook-PC 3.13.0-48-generic #80-Ubuntu SMP Thu Mar 12 11:16:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux MACHINE 2 CPU INFO: ================== vendor_id : GenuineIntel cpu family : 6 model : 62 model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz stepping : 4 microcode : 0x416 cpu MHz : 2599.890 cache size : 20480 KB physical id : 1 siblings : 16 core id : 7 cpu cores : 8 apicid : 47 initial apicid : 47 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms bogomips : 5201.35 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management: MACHINE 2 OS: ============= Linux vthummala-PowerEdge-R720 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux On 8 April 2015 at 17:17, Neil Horman <nhorman@tuxdriver.com> wrote: > On Wed, Apr 08, 2015 at 02:03:05PM +0530, Venkat Thummala wrote: > > Hi Neil, > > > > Thanks for the quick response. > > > > The issue got fixed by setting CONFIG_RTE_MACHINE to "default". > > > Default is the lowest common demoninator system that dpdk supports (core2 > duo). > So if you're system is superior to that processor, you're ok. > > > Though, this fixed the CRASH issue, I am observing inconsistent behavior > > with ACL tables. > > > > With the same traffic and same ACL rule, on ONE machine the ACL rule is > > being HIT, where as on the OTHER machine the rule never HITS. > > > > Is this because of the "default" machine option? > > > Possibly, the machine type changes the method of lookup for ACL rules, > though it > should remain consistent in terms of which rules are hit. > > Regards > > Venkat > > > > > > On 7 April 2015 at 20:05, Neil Horman <nhorman@tuxdriver.com> wrote: > > > > > On Tue, Apr 07, 2015 at 05:30:15PM +0530, Venkat Thummala wrote: > > > > Attaching the CPU Info. > > > > > > > > On 7 April 2015 at 17:28, Venkat Thummala < > > > venkat.thummala.1978@gmail.com> > > > > wrote: > > > > > > > > > Hi, > > > > > > > > > > I have built a DPDK application [based on version 2.0] and run on > the > > > > > native machine successfully. > > > > > > > > > > I have tried running the binary on a different machine, but it > > > resulted in > > > > > a CRASH with the following back trace. > > > > > > > > > > Please find the CPU info of the machines from the attachment. > > > > > > > > > > cpuinfo-1 - Native Machine > > > > > cpuinfo-2 - Non Native Machine > > > > > > > > > > Could someone please help me in understanding the issue here and > > > making it > > > > > work? > > > > > > > > > > Regards > > > > > Venkat > > > > > > > > > > Program terminated with signal SIGILL, Illegal instruction. > > > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled > (feature=2147483656, > > > > > feature@entry=RTE_CPUFLAG_EM64T) > > > > > at > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > > > > 303 return (regs[feat->reg] >> feat->bit) & 1; > > > > > > Looks like this somehow compiled into an instruction that the native > system > > > understands but the system you're running on doesn't. disassemble the > > > code here > > > to see what instruction that is to confirm, then you either need to: > > > > > > 1) Change the machine you're compiling for to be more specific to your > > > target > > > system > > > > > > or > > > > > > 2) Understand that the hardware you're targeting doesn't support dpdk > > > > > > Neil > > > > > > > > (gdb) bt > > > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled > (feature=2147483656, > > > > > feature@entry=RTE_CPUFLAG_EM64T) > > > > > at > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > > > > #1 0x0000000000420a1b in rte_hash_crc_set_alg (alg=6 '\006') > > > > > at > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:429 > > > > > #2 rte_hash_crc_init_alg () at > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:445 > > > > > #3 0x000000000054968d in __libc_csu_init () > > > > > #4 0x00007fc3ca474e55 in group_nodes_into_DFAstates > > > > > (dests_ch=0x940f507ab10ff0c8, dests_node=0x4a8b44de74c084c0, > > > > > state=0x4420528b48a8ebc9, > > > > > dfa=<optimized out>) at regexec.c:3614 > > > > > #5 build_trtable (dfa=0x840fc139c0014468, > state=0x4420528b48a8ebc9) at > > > > > regexec.c:3354 > > > > > #6 0x41d589495541f689 in ?? () > > > > > #7 0x00251630258d4c54 in ?? () > > > > > #8 0x002517302d8d4855 in ?? () > > > > > #9 0xc148db31e5294c53 in ?? () > > > > > #10 0x65e808ec834803fd in ?? () > > > > > #11 0x1e74ed8548ffed48 in ?? () > > > > > #12 0x0000000000841f0f in ?? () > > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] Running DPDK Binaries on a different Target 2015-04-09 9:07 ` Venkat Thummala @ 2015-04-09 11:37 ` Ananyev, Konstantin 2015-04-10 5:08 ` Venkat Thummala 0 siblings, 1 reply; 9+ messages in thread From: Ananyev, Konstantin @ 2015-04-09 11:37 UTC (permalink / raw) To: Venkat Thummala, Neil Horman; +Cc: dev Hi Venkat, > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Venkat Thummala > Sent: Thursday, April 09, 2015 10:07 AM > To: Neil Horman > Cc: dev@dpdk.org > Subject: Re: [dpdk-dev] Running DPDK Binaries on a different Target > > I have the following ACL rule configured in the ACL Table. > > Priority - 20 > SIP - 0 > SIP MASK - 0 > DIP - 0 > DIP MASK - 0 > PROTO - 17 [UDP] > PROTO MASK - 0xFF > SPORT - 0 > SPORT RANGE - 0xFFFF > DPORT - 0 > DPORT RANGE - 0xFFFF > > And pumping UDP traffic. > > On Machine 1, it always HITS the rule as expected. > > But On Machine 2, the same traffic never HITS the rule. > > I have tried this with both SCALAR and SSE classification algorithms, but > the result is same. So did I get it right: You build a binary with RTE_MACHINE="default" on a box with AVX2 support. Then run that binary on a) native box (machine with AVX2 support) b) machine without AVX2 support For the same input and same rules, same binary you got different results for a) and b). If that is the case, then there is something wrong here, either within our code or with the compiler you are using. Could you provide steps to reproduce it? I did a quick test with l3fwd-acl for that case, 'default' binary that I built on HSW board, works as expected on IVB box for me. Build box: HSW (E3-1285), gcc 4.8.3 SUT: IVB 2.80GHz, gcc 4.8.2 # cat acl_ipv4.rule1 R0.0.0.0/0 0.0.0.0/0 0 : 0xffff 0 : 0xffff 17/0xff 0 # cat acl_ipv6.rule1 R0:0:0:0:0:0:0:0/0 0:0:0:0:0:0:0:0/0 0 : 0xffff 0 : 0xffff 17/0xff 0 ./dpdk.org-acl/examples/l3fwd-acl/x86_64-default-linuxapp-gcc/l3fwd-acl --lcores=3 -n 4 --socket-mem=1024,0 -w 0000:04:00.1 -- -p 1 --config "(0, 0, 3)" --rule_ipv4=./acl_ipv4.rule1 --rule_ipv6=acl_ipv6.rule1 -P Forwards UDP packets, drops all others. Anything else in your setup, that I am missing here? Konstantin > > Could some one, please help me on this? > > DPDK Version: > =========== > 2.0 > > Machine 1 CPU INFO: > ================ > vendor_id : GenuineIntel > cpu family : 6 > model : 69 > model name : Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz > stepping : 1 > microcode : 0x16 > cpu MHz : 759.000 > cache size : 3072 KB > physical id : 0 > siblings : 4 > core id : 1 > cpu cores : 2 > apicid : 3 > initial apicid : 3 > fpu : yes > fpu_exception : yes > cpuid level : 13 > wp : yes > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca > cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx > pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl > xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor > ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt > tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb > xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase > tsc_adjust bmi1 avx2 smep bmi2 erms invpcid > bogomips : 4589.70 > clflush size : 64 > cache_alignment : 64 > address sizes : 39 bits physical, 48 bits virtual > power management: > > MACHINE 1 OS: > ============= > Linux vthummala-HP-Pavilion-15-Notebook-PC 3.13.0-48-generic #80-Ubuntu SMP > Thu Mar 12 11:16:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux > > MACHINE 2 CPU INFO: > ================== > vendor_id : GenuineIntel > cpu family : 6 > model : 62 > model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz > stepping : 4 > microcode : 0x416 > cpu MHz : 2599.890 > cache size : 20480 KB > physical id : 1 > siblings : 16 > core id : 7 > cpu cores : 8 > apicid : 47 > initial apicid : 47 > fpu : yes > fpu_exception : yes > cpuid level : 13 > wp : yes > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca > cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx > pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl > xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor > ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic > popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat > xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep > erms > bogomips : 5201.35 > clflush size : 64 > cache_alignment : 64 > address sizes : 46 bits physical, 48 bits virtual > power management: > > MACHINE 2 OS: > ============= > Linux vthummala-PowerEdge-R720 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 > 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux > > > On 8 April 2015 at 17:17, Neil Horman <nhorman@tuxdriver.com> wrote: > > > On Wed, Apr 08, 2015 at 02:03:05PM +0530, Venkat Thummala wrote: > > > Hi Neil, > > > > > > Thanks for the quick response. > > > > > > The issue got fixed by setting CONFIG_RTE_MACHINE to "default". > > > > > Default is the lowest common demoninator system that dpdk supports (core2 > > duo). > > So if you're system is superior to that processor, you're ok. > > > > > Though, this fixed the CRASH issue, I am observing inconsistent behavior > > > with ACL tables. > > > > > > With the same traffic and same ACL rule, on ONE machine the ACL rule is > > > being HIT, where as on the OTHER machine the rule never HITS. > > > > > > Is this because of the "default" machine option? > > > > > Possibly, the machine type changes the method of lookup for ACL rules, > > though it > > should remain consistent in terms of which rules are hit. > > > Regards > > > Venkat > > > > > > > > > On 7 April 2015 at 20:05, Neil Horman <nhorman@tuxdriver.com> wrote: > > > > > > > On Tue, Apr 07, 2015 at 05:30:15PM +0530, Venkat Thummala wrote: > > > > > Attaching the CPU Info. > > > > > > > > > > On 7 April 2015 at 17:28, Venkat Thummala < > > > > venkat.thummala.1978@gmail.com> > > > > > wrote: > > > > > > > > > > > Hi, > > > > > > > > > > > > I have built a DPDK application [based on version 2.0] and run on > > the > > > > > > native machine successfully. > > > > > > > > > > > > I have tried running the binary on a different machine, but it > > > > resulted in > > > > > > a CRASH with the following back trace. > > > > > > > > > > > > Please find the CPU info of the machines from the attachment. > > > > > > > > > > > > cpuinfo-1 - Native Machine > > > > > > cpuinfo-2 - Non Native Machine > > > > > > > > > > > > Could someone please help me in understanding the issue here and > > > > making it > > > > > > work? > > > > > > > > > > > > Regards > > > > > > Venkat > > > > > > > > > > > > Program terminated with signal SIGILL, Illegal instruction. > > > > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled > > (feature=2147483656, > > > > > > feature@entry=RTE_CPUFLAG_EM64T) > > > > > > at > > > > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > > > > > 303 return (regs[feat->reg] >> feat->bit) & 1; > > > > > > > > Looks like this somehow compiled into an instruction that the native > > system > > > > understands but the system you're running on doesn't. disassemble the > > > > code here > > > > to see what instruction that is to confirm, then you either need to: > > > > > > > > 1) Change the machine you're compiling for to be more specific to your > > > > target > > > > system > > > > > > > > or > > > > > > > > 2) Understand that the hardware you're targeting doesn't support dpdk > > > > > > > > Neil > > > > > > > > > > (gdb) bt > > > > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled > > (feature=2147483656, > > > > > > feature@entry=RTE_CPUFLAG_EM64T) > > > > > > at > > > > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > > > > > #1 0x0000000000420a1b in rte_hash_crc_set_alg (alg=6 '\006') > > > > > > at > > > > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:429 > > > > > > #2 rte_hash_crc_init_alg () at > > > > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:445 > > > > > > #3 0x000000000054968d in __libc_csu_init () > > > > > > #4 0x00007fc3ca474e55 in group_nodes_into_DFAstates > > > > > > (dests_ch=0x940f507ab10ff0c8, dests_node=0x4a8b44de74c084c0, > > > > > > state=0x4420528b48a8ebc9, > > > > > > dfa=<optimized out>) at regexec.c:3614 > > > > > > #5 build_trtable (dfa=0x840fc139c0014468, > > state=0x4420528b48a8ebc9) at > > > > > > regexec.c:3354 > > > > > > #6 0x41d589495541f689 in ?? () > > > > > > #7 0x00251630258d4c54 in ?? () > > > > > > #8 0x002517302d8d4855 in ?? () > > > > > > #9 0xc148db31e5294c53 in ?? () > > > > > > #10 0x65e808ec834803fd in ?? () > > > > > > #11 0x1e74ed8548ffed48 in ?? () > > > > > > #12 0x0000000000841f0f in ?? () > > > > > > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] Running DPDK Binaries on a different Target 2015-04-09 11:37 ` Ananyev, Konstantin @ 2015-04-10 5:08 ` Venkat Thummala 2015-04-10 9:02 ` Venkat Thummala 0 siblings, 1 reply; 9+ messages in thread From: Venkat Thummala @ 2015-04-10 5:08 UTC (permalink / raw) To: Ananyev, Konstantin; +Cc: dev Hi Konstantin, Thanks a lot for looking in to this. In my case, I am using the ACL Pipeline Infra [My application logic is built on the ACL pipeline]. After your mail, I did verify the same with "l3fwd-acl" example, it just worked fine. Seems like, the issue is observed only with the Pipeline implementation. Currently, I am debugging this, will update you once I have more info on this. Any known issues with the Pipeline implementation? Regards Venkat On 9 April 2015 at 17:07, Ananyev, Konstantin <konstantin.ananyev@intel.com> wrote: > > Hi Venkat, > > > -----Original Message----- > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Venkat Thummala > > Sent: Thursday, April 09, 2015 10:07 AM > > To: Neil Horman > > Cc: dev@dpdk.org > > Subject: Re: [dpdk-dev] Running DPDK Binaries on a different Target > > > > I have the following ACL rule configured in the ACL Table. > > > > Priority - 20 > > SIP - 0 > > SIP MASK - 0 > > DIP - 0 > > DIP MASK - 0 > > PROTO - 17 [UDP] > > PROTO MASK - 0xFF > > SPORT - 0 > > SPORT RANGE - 0xFFFF > > DPORT - 0 > > DPORT RANGE - 0xFFFF > > > > And pumping UDP traffic. > > > > On Machine 1, it always HITS the rule as expected. > > > > But On Machine 2, the same traffic never HITS the rule. > > > > I have tried this with both SCALAR and SSE classification algorithms, but > > the result is same. > > So did I get it right: > You build a binary with RTE_MACHINE="default" on a box with AVX2 support. > Then run that binary on > a) native box (machine with AVX2 support) > b) machine without AVX2 support > > For the same input and same rules, same binary you got different results > for a) and b). > If that is the case, then there is something wrong here, either within our > code or with the compiler you are using. > Could you provide steps to reproduce it? > I did a quick test with l3fwd-acl for that case, 'default' binary that I > built on HSW board, > works as expected on IVB box for me. > > Build box: HSW (E3-1285), gcc 4.8.3 > SUT: IVB 2.80GHz, gcc 4.8.2 > > # cat acl_ipv4.rule1 > R0.0.0.0/0 0.0.0.0/0 0 : 0xffff 0 : 0xffff 17/0xff 0 > # cat acl_ipv6.rule1 > R0:0:0:0:0:0:0:0/0 0:0:0:0:0:0:0:0/0 0 : 0xffff 0 : 0xffff 17/0xff 0 > > ./dpdk.org-acl/examples/l3fwd-acl/x86_64-default-linuxapp-gcc/l3fwd-acl > --lcores=3 -n 4 --socket-mem=1024,0 -w 0000:04:00.1 -- -p 1 --config "(0, > 0, 3)" --rule_ipv4=./acl_ipv4.rule1 --rule_ipv6=acl_ipv6.rule1 -P > > Forwards UDP packets, drops all others. > > Anything else in your setup, that I am missing here? > > Konstantin > > > > > Could some one, please help me on this? > > > > DPDK Version: > > =========== > > 2.0 > > > > Machine 1 CPU INFO: > > ================ > > vendor_id : GenuineIntel > > cpu family : 6 > > model : 69 > > model name : Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz > > stepping : 1 > > microcode : 0x16 > > cpu MHz : 759.000 > > cache size : 3072 KB > > physical id : 0 > > siblings : 4 > > core id : 1 > > cpu cores : 2 > > apicid : 3 > > initial apicid : 3 > > fpu : yes > > fpu_exception : yes > > cpuid level : 13 > > wp : yes > > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca > > cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx > > pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl > > xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor > > ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe > popcnt > > tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb > > xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase > > tsc_adjust bmi1 avx2 smep bmi2 erms invpcid > > bogomips : 4589.70 > > clflush size : 64 > > cache_alignment : 64 > > address sizes : 39 bits physical, 48 bits virtual > > power management: > > > > MACHINE 1 OS: > > ============= > > Linux vthummala-HP-Pavilion-15-Notebook-PC 3.13.0-48-generic #80-Ubuntu > SMP > > Thu Mar 12 11:16:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux > > > > MACHINE 2 CPU INFO: > > ================== > > vendor_id : GenuineIntel > > cpu family : 6 > > model : 62 > > model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz > > stepping : 4 > > microcode : 0x416 > > cpu MHz : 2599.890 > > cache size : 20480 KB > > physical id : 1 > > siblings : 16 > > core id : 7 > > cpu cores : 8 > > apicid : 47 > > initial apicid : 47 > > fpu : yes > > fpu_exception : yes > > cpuid level : 13 > > wp : yes > > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca > > cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx > > pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl > > xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor > > ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic > > popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat > > xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase > smep > > erms > > bogomips : 5201.35 > > clflush size : 64 > > cache_alignment : 64 > > address sizes : 46 bits physical, 48 bits virtual > > power management: > > > > MACHINE 2 OS: > > ============= > > Linux vthummala-PowerEdge-R720 3.13.0-24-generic #46-Ubuntu SMP Thu Apr > 10 > > 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux > > > > > > On 8 April 2015 at 17:17, Neil Horman <nhorman@tuxdriver.com> wrote: > > > > > On Wed, Apr 08, 2015 at 02:03:05PM +0530, Venkat Thummala wrote: > > > > Hi Neil, > > > > > > > > Thanks for the quick response. > > > > > > > > The issue got fixed by setting CONFIG_RTE_MACHINE to "default". > > > > > > > Default is the lowest common demoninator system that dpdk supports > (core2 > > > duo). > > > So if you're system is superior to that processor, you're ok. > > > > > > > Though, this fixed the CRASH issue, I am observing inconsistent > behavior > > > > with ACL tables. > > > > > > > > With the same traffic and same ACL rule, on ONE machine the ACL rule > is > > > > being HIT, where as on the OTHER machine the rule never HITS. > > > > > > > > Is this because of the "default" machine option? > > > > > > > Possibly, the machine type changes the method of lookup for ACL rules, > > > though it > > > should remain consistent in terms of which rules are hit. > > > > Regards > > > > Venkat > > > > > > > > > > > > On 7 April 2015 at 20:05, Neil Horman <nhorman@tuxdriver.com> wrote: > > > > > > > > > On Tue, Apr 07, 2015 at 05:30:15PM +0530, Venkat Thummala wrote: > > > > > > Attaching the CPU Info. > > > > > > > > > > > > On 7 April 2015 at 17:28, Venkat Thummala < > > > > > venkat.thummala.1978@gmail.com> > > > > > > wrote: > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > I have built a DPDK application [based on version 2.0] and run > on > > > the > > > > > > > native machine successfully. > > > > > > > > > > > > > > I have tried running the binary on a different machine, but it > > > > > resulted in > > > > > > > a CRASH with the following back trace. > > > > > > > > > > > > > > Please find the CPU info of the machines from the attachment. > > > > > > > > > > > > > > cpuinfo-1 - Native Machine > > > > > > > cpuinfo-2 - Non Native Machine > > > > > > > > > > > > > > Could someone please help me in understanding the issue here > and > > > > > making it > > > > > > > work? > > > > > > > > > > > > > > Regards > > > > > > > Venkat > > > > > > > > > > > > > > Program terminated with signal SIGILL, Illegal instruction. > > > > > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled > > > (feature=2147483656, > > > > > > > feature@entry=RTE_CPUFLAG_EM64T) > > > > > > > at > > > > > > > > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > > > > > > 303 return (regs[feat->reg] >> feat->bit) & 1; > > > > > > > > > > Looks like this somehow compiled into an instruction that the > native > > > system > > > > > understands but the system you're running on doesn't. disassemble > the > > > > > code here > > > > > to see what instruction that is to confirm, then you either need > to: > > > > > > > > > > 1) Change the machine you're compiling for to be more specific to > your > > > > > target > > > > > system > > > > > > > > > > or > > > > > > > > > > 2) Understand that the hardware you're targeting doesn't support > dpdk > > > > > > > > > > Neil > > > > > > > > > > > > (gdb) bt > > > > > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled > > > (feature=2147483656, > > > > > > > feature@entry=RTE_CPUFLAG_EM64T) > > > > > > > at > > > > > > > > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 > > > > > > > #1 0x0000000000420a1b in rte_hash_crc_set_alg (alg=6 '\006') > > > > > > > at > > > > > > > > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:429 > > > > > > > #2 rte_hash_crc_init_alg () at > > > > > > > > > > > > > > > > /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:445 > > > > > > > #3 0x000000000054968d in __libc_csu_init () > > > > > > > #4 0x00007fc3ca474e55 in group_nodes_into_DFAstates > > > > > > > (dests_ch=0x940f507ab10ff0c8, dests_node=0x4a8b44de74c084c0, > > > > > > > state=0x4420528b48a8ebc9, > > > > > > > dfa=<optimized out>) at regexec.c:3614 > > > > > > > #5 build_trtable (dfa=0x840fc139c0014468, > > > state=0x4420528b48a8ebc9) at > > > > > > > regexec.c:3354 > > > > > > > #6 0x41d589495541f689 in ?? () > > > > > > > #7 0x00251630258d4c54 in ?? () > > > > > > > #8 0x002517302d8d4855 in ?? () > > > > > > > #9 0xc148db31e5294c53 in ?? () > > > > > > > #10 0x65e808ec834803fd in ?? () > > > > > > > #11 0x1e74ed8548ffed48 in ?? () > > > > > > > #12 0x0000000000841f0f in ?? () > > > > > > > > > > > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] Running DPDK Binaries on a different Target 2015-04-10 5:08 ` Venkat Thummala @ 2015-04-10 9:02 ` Venkat Thummala 0 siblings, 0 replies; 9+ messages in thread From: Venkat Thummala @ 2015-04-10 9:02 UTC (permalink / raw) To: Ananyev, Konstantin; +Cc: dev The issue is with my application logic, which calculates the SIP/DIP MASK values. I am using "__builtin_ctz(x)" to calculate the SIP/DIP MASK. mask = 32 - __builtin_ctz(value). If the value is ZERO, the outcome is undefined. In my case, we are hitting the UNDEFINED case here. On MACHINE 1, __builtin_ctz(0) is returning 32, So, it works. On MACHINE 2, __builtin_ctz(0) is returning 0, So, it fails. Regards Venkat On 10 April 2015 at 10:38, Venkat Thummala <venkat.thummala.1978@gmail.com> wrote: > Hi Konstantin, > > Thanks a lot for looking in to this. > > In my case, I am using the ACL Pipeline Infra [My application logic is > built on the ACL pipeline]. > After your mail, I did verify the same with "l3fwd-acl" example, it just > worked fine. > Seems like, the issue is observed only with the Pipeline implementation. > Currently, I am debugging this, will update you once I have more info on > this. > Any known issues with the Pipeline implementation? > > Regards > Venkat > > > > On 9 April 2015 at 17:07, Ananyev, Konstantin < > konstantin.ananyev@intel.com> wrote: > >> >> Hi Venkat, >> >> > -----Original Message----- >> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Venkat Thummala >> > Sent: Thursday, April 09, 2015 10:07 AM >> > To: Neil Horman >> > Cc: dev@dpdk.org >> > Subject: Re: [dpdk-dev] Running DPDK Binaries on a different Target >> > >> > I have the following ACL rule configured in the ACL Table. >> > >> > Priority - 20 >> > SIP - 0 >> > SIP MASK - 0 >> > DIP - 0 >> > DIP MASK - 0 >> > PROTO - 17 [UDP] >> > PROTO MASK - 0xFF >> > SPORT - 0 >> > SPORT RANGE - 0xFFFF >> > DPORT - 0 >> > DPORT RANGE - 0xFFFF >> > >> > And pumping UDP traffic. >> > >> > On Machine 1, it always HITS the rule as expected. >> > >> > But On Machine 2, the same traffic never HITS the rule. >> > >> > I have tried this with both SCALAR and SSE classification algorithms, >> but >> > the result is same. >> >> So did I get it right: >> You build a binary with RTE_MACHINE="default" on a box with AVX2 support. >> Then run that binary on >> a) native box (machine with AVX2 support) >> b) machine without AVX2 support >> >> For the same input and same rules, same binary you got different results >> for a) and b). >> If that is the case, then there is something wrong here, either within >> our code or with the compiler you are using. >> Could you provide steps to reproduce it? >> I did a quick test with l3fwd-acl for that case, 'default' binary that I >> built on HSW board, >> works as expected on IVB box for me. >> >> Build box: HSW (E3-1285), gcc 4.8.3 >> SUT: IVB 2.80GHz, gcc 4.8.2 >> >> # cat acl_ipv4.rule1 >> R0.0.0.0/0 0.0.0.0/0 0 : 0xffff 0 : 0xffff 17/0xff 0 >> # cat acl_ipv6.rule1 >> R0:0:0:0:0:0:0:0/0 0:0:0:0:0:0:0:0/0 0 : 0xffff 0 : 0xffff 17/0xff 0 >> >> ./dpdk.org-acl/examples/l3fwd-acl/x86_64-default-linuxapp-gcc/l3fwd-acl >> --lcores=3 -n 4 --socket-mem=1024,0 -w 0000:04:00.1 -- -p 1 --config "(0, >> 0, 3)" --rule_ipv4=./acl_ipv4.rule1 --rule_ipv6=acl_ipv6.rule1 -P >> >> Forwards UDP packets, drops all others. >> >> Anything else in your setup, that I am missing here? >> >> Konstantin >> >> > >> > Could some one, please help me on this? >> > >> > DPDK Version: >> > =========== >> > 2.0 >> > >> > Machine 1 CPU INFO: >> > ================ >> > vendor_id : GenuineIntel >> > cpu family : 6 >> > model : 69 >> > model name : Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz >> > stepping : 1 >> > microcode : 0x16 >> > cpu MHz : 759.000 >> > cache size : 3072 KB >> > physical id : 0 >> > siblings : 4 >> > core id : 1 >> > cpu cores : 2 >> > apicid : 3 >> > initial apicid : 3 >> > fpu : yes >> > fpu_exception : yes >> > cpuid level : 13 >> > wp : yes >> > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca >> > cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall >> nx >> > pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl >> > xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor >> > ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe >> popcnt >> > tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb >> > xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase >> > tsc_adjust bmi1 avx2 smep bmi2 erms invpcid >> > bogomips : 4589.70 >> > clflush size : 64 >> > cache_alignment : 64 >> > address sizes : 39 bits physical, 48 bits virtual >> > power management: >> > >> > MACHINE 1 OS: >> > ============= >> > Linux vthummala-HP-Pavilion-15-Notebook-PC 3.13.0-48-generic #80-Ubuntu >> SMP >> > Thu Mar 12 11:16:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux >> > >> > MACHINE 2 CPU INFO: >> > ================== >> > vendor_id : GenuineIntel >> > cpu family : 6 >> > model : 62 >> > model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz >> > stepping : 4 >> > microcode : 0x416 >> > cpu MHz : 2599.890 >> > cache size : 20480 KB >> > physical id : 1 >> > siblings : 16 >> > core id : 7 >> > cpu cores : 8 >> > apicid : 47 >> > initial apicid : 47 >> > fpu : yes >> > fpu_exception : yes >> > cpuid level : 13 >> > wp : yes >> > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca >> > cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall >> nx >> > pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl >> > xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor >> > ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 >> x2apic >> > popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat >> > xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase >> smep >> > erms >> > bogomips : 5201.35 >> > clflush size : 64 >> > cache_alignment : 64 >> > address sizes : 46 bits physical, 48 bits virtual >> > power management: >> > >> > MACHINE 2 OS: >> > ============= >> > Linux vthummala-PowerEdge-R720 3.13.0-24-generic #46-Ubuntu SMP Thu Apr >> 10 >> > 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux >> > >> > >> > On 8 April 2015 at 17:17, Neil Horman <nhorman@tuxdriver.com> wrote: >> > >> > > On Wed, Apr 08, 2015 at 02:03:05PM +0530, Venkat Thummala wrote: >> > > > Hi Neil, >> > > > >> > > > Thanks for the quick response. >> > > > >> > > > The issue got fixed by setting CONFIG_RTE_MACHINE to "default". >> > > > >> > > Default is the lowest common demoninator system that dpdk supports >> (core2 >> > > duo). >> > > So if you're system is superior to that processor, you're ok. >> > > >> > > > Though, this fixed the CRASH issue, I am observing inconsistent >> behavior >> > > > with ACL tables. >> > > > >> > > > With the same traffic and same ACL rule, on ONE machine the ACL >> rule is >> > > > being HIT, where as on the OTHER machine the rule never HITS. >> > > > >> > > > Is this because of the "default" machine option? >> > > > >> > > Possibly, the machine type changes the method of lookup for ACL rules, >> > > though it >> > > should remain consistent in terms of which rules are hit. >> > > > Regards >> > > > Venkat >> > > > >> > > > >> > > > On 7 April 2015 at 20:05, Neil Horman <nhorman@tuxdriver.com> >> wrote: >> > > > >> > > > > On Tue, Apr 07, 2015 at 05:30:15PM +0530, Venkat Thummala wrote: >> > > > > > Attaching the CPU Info. >> > > > > > >> > > > > > On 7 April 2015 at 17:28, Venkat Thummala < >> > > > > venkat.thummala.1978@gmail.com> >> > > > > > wrote: >> > > > > > >> > > > > > > Hi, >> > > > > > > >> > > > > > > I have built a DPDK application [based on version 2.0] and >> run on >> > > the >> > > > > > > native machine successfully. >> > > > > > > >> > > > > > > I have tried running the binary on a different machine, but it >> > > > > resulted in >> > > > > > > a CRASH with the following back trace. >> > > > > > > >> > > > > > > Please find the CPU info of the machines from the attachment. >> > > > > > > >> > > > > > > cpuinfo-1 - Native Machine >> > > > > > > cpuinfo-2 - Non Native Machine >> > > > > > > >> > > > > > > Could someone please help me in understanding the issue here >> and >> > > > > making it >> > > > > > > work? >> > > > > > > >> > > > > > > Regards >> > > > > > > Venkat >> > > > > > > >> > > > > > > Program terminated with signal SIGILL, Illegal instruction. >> > > > > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled >> > > (feature=2147483656, >> > > > > > > feature@entry=RTE_CPUFLAG_EM64T) >> > > > > > > at >> > > > > > > >> > > > > >> > > >> /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 >> > > > > > > 303 return (regs[feat->reg] >> feat->bit) & 1; >> > > > > >> > > > > Looks like this somehow compiled into an instruction that the >> native >> > > system >> > > > > understands but the system you're running on doesn't. >> disassemble the >> > > > > code here >> > > > > to see what instruction that is to confirm, then you either need >> to: >> > > > > >> > > > > 1) Change the machine you're compiling for to be more specific to >> your >> > > > > target >> > > > > system >> > > > > >> > > > > or >> > > > > >> > > > > 2) Understand that the hardware you're targeting doesn't support >> dpdk >> > > > > >> > > > > Neil >> > > > > >> > > > > > > (gdb) bt >> > > > > > > #0 0x00000000004209f2 in rte_cpu_get_flag_enabled >> > > (feature=2147483656, >> > > > > > > feature@entry=RTE_CPUFLAG_EM64T) >> > > > > > > at >> > > > > > > >> > > > > >> > > >> /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:303 >> > > > > > > #1 0x0000000000420a1b in rte_hash_crc_set_alg (alg=6 '\006') >> > > > > > > at >> > > > > > > >> > > > > >> > > >> /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:429 >> > > > > > > #2 rte_hash_crc_init_alg () at >> > > > > > > >> > > > > >> > > >> /home/vthummala/src/vwlc/dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:445 >> > > > > > > #3 0x000000000054968d in __libc_csu_init () >> > > > > > > #4 0x00007fc3ca474e55 in group_nodes_into_DFAstates >> > > > > > > (dests_ch=0x940f507ab10ff0c8, dests_node=0x4a8b44de74c084c0, >> > > > > > > state=0x4420528b48a8ebc9, >> > > > > > > dfa=<optimized out>) at regexec.c:3614 >> > > > > > > #5 build_trtable (dfa=0x840fc139c0014468, >> > > state=0x4420528b48a8ebc9) at >> > > > > > > regexec.c:3354 >> > > > > > > #6 0x41d589495541f689 in ?? () >> > > > > > > #7 0x00251630258d4c54 in ?? () >> > > > > > > #8 0x002517302d8d4855 in ?? () >> > > > > > > #9 0xc148db31e5294c53 in ?? () >> > > > > > > #10 0x65e808ec834803fd in ?? () >> > > > > > > #11 0x1e74ed8548ffed48 in ?? () >> > > > > > > #12 0x0000000000841f0f in ?? () >> > > > > > > >> > > > > > >> > > > > >> > > >> > > ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-04-10 9:02 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-04-07 11:58 [dpdk-dev] Running DPDK Binaries on a different Target Venkat Thummala 2015-04-07 12:00 ` Venkat Thummala 2015-04-07 14:35 ` Neil Horman 2015-04-08 8:33 ` Venkat Thummala 2015-04-08 11:47 ` Neil Horman 2015-04-09 9:07 ` Venkat Thummala 2015-04-09 11:37 ` Ananyev, Konstantin 2015-04-10 5:08 ` Venkat Thummala 2015-04-10 9:02 ` Venkat Thummala
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).