The toolchain I'm using is listed like that :
gcc 4.8.5 (also used 4.8.2, same error),
The data what I am scanning is captured by tcpdump (the pcap file is about
40GB), and my patterns only have eight http methods (GET，
POST， HEAD， OPTIONS， PUT， DELETE， TRACE， CONNECT). BTW, I use block mode of
hyperscan. After I optimized the code and using "-O2" gcc compile option,
my newest test performance is about 882Mbps.
On Tue, Jan 3, 2017 at 7:25 AM, Barr, Matthew <matthew.barr(a)intel.com>
From: Hyperscan [hyperscan-bounces(a)lists.01.org] on behalf of Datong
Sent: Friday, December 30, 2016 3:12 PM
> 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
> /tmp/ccoj8u4q.s:470: Error: no such instruction: `vpbroadcastb
I've replied to the github issue about this - it appears there is a
problem with your toolchain. The compiler and assembler do not match, GCC
is producing asm that the assembler doesn't understand. This can happen
with a newer GCC and an old version of binutils, for example.
> 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 theinstruction sets.
It is hard to comment on the performance you are seeing without knowing
how you are getting those numbers. Can you comment on the type of patterns
you are using, and the data you are scanning?
With best regards,