Hi Datong,

 

Can you provide more details about the sort of patterns being used? For example: the number of patterns and the type of patterns – perhaps a sample?

 

I would expect performance over 882Mbps under most circumstances, but pattern count and the structure of patterns is definitely the biggest source of variability.

 

If you would prefer to reply off-list (e.g. because of pattern confidentiality requirements), please contact a team member or the Hyperscan alias (hyperscan@intel.com) directly.

 

Regards,

Geoff.

 

From: Hyperscan [mailto:hyperscan-bounces@lists.01.org] On Behalf Of Datong Li
Sent: Tuesday, January 3, 2017 2:46 PM
To: Hyperscan regular expression matching library <hyperscan@lists.01.org>
Subject: Re: [Hyperscan] Encounter not found instruction error and poor performance of hyperscan

 

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