[dpdk-dev] Running DPDK Binaries on a different Target

Venkat Thummala venkat.thummala.1978 at gmail.com
Thu Apr 9 11:07:00 CEST 2015


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 at 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 at 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 at 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 at 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 at 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 ?? ()
> > > > >
> > > >
> > >
>


More information about the dev mailing list