In addition, as and ld version 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

[root@XXXX hyperscan]# ld -V
GNU ld version 2.20.51.0.2-5.34.el6 20100205
  Supported emulations:
   elf_x86_64
   elf_i386
   i386linux
   elf_l1om


On Tue, Jan 3, 2017 at 11:45 AM, Datong Li <osdaniellee@gmail.com> wrote:
The toolchain I'm using is listed like that :
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
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.

Best regards,
Datong


On Tue, Jan 3, 2017 at 7:25 AM, Barr, Matthew <matthew.barr@intel.com> wrote:
From: Hyperscan [hyperscan-bounces@lists.01.org] on behalf of Datong Li [osdaniellee@gmail.com]
Sent: Friday, December 30, 2016 3:12 PM
To: hyperscan@lists.01.org

> 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'

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?

regards,
Matt.



--

With best regards, 
Datong Li



--

With best regards, 
Datong Li