Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Encounter not found instruction error and poor performance of hyperscan #44

Closed
datonli opened this issue Dec 30, 2016 · 5 comments
Closed

Comments

@datonli
Copy link

datonli commented Dec 30, 2016

Hi all, had anyone encounter this problem like me below:

[root@XXXX hs_build]# cmake --build . /usr/bin/make64 MAC=64 Scanning dependencies of target ragel_Parser [ 0%] Generating src/parser/Parser.cpp [ 0%] Built target ragel_Parser Scanning dependencies of target hs_exec [ 0%] Building C object CMakeFiles/hs_exec.dir/src/alloc.c.o [ 1%] Building C object CMakeFiles/hs_exec.dir/src/runtime.c.o /tmp/ccoj8u4q.s: Assembler messages: /tmp/ccoj8u4q.s:460: Error: no such instruction:vpbroadcastb %xmm2,%xmm2'
/tmp/ccoj8u4q.s:470: Error: no such instruction: vpbroadcastb %xmm3,%xmm3' /tmp/ccoj8u4q.s:836: Error: no such instruction: vpbroadcastb %xmm2,%xmm2'
/tmp/ccoj8u4q.s:846: Error: no such instruction: vpbroadcastb %xmm3,%xmm3' /tmp/ccoj8u4q.s:1191: Error: no such instruction: vpbroadcastb %xmm1,%xmm1'
/tmp/ccoj8u4q.s:1318: Error: no such instruction: vpbroadcastb %xmm1,%xmm1' /tmp/ccoj8u4q.s:1933: Error: no such instruction: shlx %r8,%rax,%rax'
/tmp/ccoj8u4q.s:2033: Error: no such instruction: shlx %rdx,%r11,%rdx' /tmp/ccoj8u4q.s:2052: Error: no such instruction: shrx %esi,%eax,%eax'
/tmp/ccoj8u4q.s:2132: Error: no such instruction: shlx %rax,%r12,%rax' /tmp/ccoj8u4q.s:4303: Error: no such instruction: shlx %rdx,%r11,%rdx'
/tmp/ccoj8u4q.s:4322: Error: no such instruction: shrx %r8d,%eax,%eax' /tmp/ccoj8u4q.s:4367: Error: no such instruction: shlx %rax,%r15,%rax'
/tmp/ccoj8u4q.s:4437: Error: no such instruction: shlx %rsi,%rax,%rax' /tmp/ccoj8u4q.s:5203: Error: no such instruction: shlx %rsi,%rax,%rax'
/tmp/ccoj8u4q.s:5388: Error: no such instruction: shlx %rsi,%rax,%rax' /tmp/ccoj8u4q.s:5675: Error: no such instruction: shlx %rdx,%rax,%rdx'
/tmp/ccoj8u4q.s:5694: Error: no such instruction: shrx %edi,%eax,%eax' /tmp/ccoj8u4q.s:5747: Error: no such instruction: shlx %rax,%rsi,%rax'
/tmp/ccoj8u4q.s:5838: Error: no such instruction: shlx %rdx,%rax,%rdx' /tmp/ccoj8u4q.s:5857: Error: no such instruction: shrx %r8d,%eax,%eax'
/tmp/ccoj8u4q.s:5910: Error: no such instruction: shlx %rax,%rsi,%rax' /tmp/ccoj8u4q.s:6527: Error: no such instruction: shlx %rdx,%r11,%rdx'
/tmp/ccoj8u4q.s:6546: Error: no such instruction: shrx %r8d,%eax,%eax' /tmp/ccoj8u4q.s:6590: Error: no such instruction: shlx %rax,%r14,%rax'
/tmp/ccoj8u4q.s:6660: Error: no such instruction: shlx %rsi,%rax,%rax' /tmp/ccoj8u4q.s:7455: Error: no such instruction: shlx %rdx,%r11,%rdx'
/tmp/ccoj8u4q.s:7474: Error: no such instruction: shrx %r8d,%eax,%eax' /tmp/ccoj8u4q.s:7519: Error: no such instruction: shlx %rax,%r15,%rax'
/tmp/ccoj8u4q.s:7589: Error: no such instruction: shlx %rsi,%rax,%rax' /tmp/ccoj8u4q.s:8398: Error: no such instruction: shlx %rdi,%rax,%rax'
/tmp/ccoj8u4q.s:8976: Error: no such instruction: shlx %r8,%rax,%rax' /tmp/ccoj8u4q.s:9384: Error: no such instruction: shlx %rdx,%rax,%rdx'
/tmp/ccoj8u4q.s:9403: Error: no such instruction: shrx %r8d,%eax,%eax' /tmp/ccoj8u4q.s:9456: Error: no such instruction: shlx %rax,%rdi,%rax'
/tmp/ccoj8u4q.s:9547: Error: no such instruction: shlx %rdx,%rax,%rdx' /tmp/ccoj8u4q.s:9566: Error: no such instruction: shrx %ecx,%eax,%eax'
/tmp/ccoj8u4q.s:9619: Error: no such instruction: shlx %rax,%r8,%rax' /tmp/ccoj8u4q.s:9977: Error: no such instruction: shlx %rcx,%r15,%rcx'
/tmp/ccoj8u4q.s:9996: Error: no such instruction: shrx %r9d,%edx,%edx' /tmp/ccoj8u4q.s:10039: Error: no such instruction: shlx %rdx,%r14,%rdx'
/tmp/ccoj8u4q.s:10107: Error: no such instruction: shlx %rsi,%rdx,%rdx' make64[2]: *** [CMakeFiles/hs_exec.dir/src/runtime.c.o] Error 1 make64[1]: *** [CMakeFiles/hs_exec.dir/all] Error 2 make64: *** [all] Error 2

It seems like a problem about cpu instruction set, my /proc/cpuinfo return :

processor : 11
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz
stepping : 2
microcode : 0x31
cpu MHz : 2400.000
cache size : 15360 KB
physical id : 1
siblings : 6
core id : 5
cpu cores : 6
apicid : 26
initial apicid : 26
fpu : yes
fpu_exception : yes
cpuid level : 15
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 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips : 4793.25
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:

[root@XXXX hs_build]# gcc -march=native -Q --help=target | grep march
-march= core-avx2

when I forbidden the instruction set avx and bmi2, then it could complete the compilation, but the hyperscan 's performance is just about 500Mb/s, it's really long distance with the official numbers. I doubt that it maybe relate with the instruction sets.

@mdb256
Copy link

mdb256 commented Jan 2, 2017

That build issue looks like a mismatch between the compiler and assembler - the C compiler is generating asm with avx2 instructions, but the assembler doesn't understand these instructions.

It appears to be Linux, but which distro and toolchain are you using?

@datonli
Copy link
Author

datonli commented Jan 3, 2017

@mdb256 What I'm using is listed below:

cmake 3.7.1,
gcc 4.8.5 (also used 4.8.2, same error),
ragel 6.9,
Python 2.7.13,
boost 1.62.0,
pcap 1.8.1
hyperscan 4.3.2

@mdb256
Copy link

mdb256 commented Jan 3, 2017

What version of binutils? That's what provides the assembler, as.

@datonli
Copy link
Author

datonli commented Jan 3, 2017

Sorry for the duplicate reply, my as version is like that:

[root@XXXX hyperscan]# as -V
GNU assembler version 2.20.51.0.2 (x86_64-redhat-linux) using BFD version version 2.20.51.0.2-5.34.el6 20100205

Maybe we could discuss this in mailing list.

@mdb256
Copy link

mdb256 commented Jan 20, 2017

As we have discussed this directly I will close this issue. Please open a new issue or contact us directly if you are having any more problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants