[Bug 1285097] Re: PCRE JIT doesn't work on trusty

Al Faar Al Hazin 1285097 at bugs.launchpad.net
Mon Jul 7 23:19:10 UTC 2014


What I did was compiling PCRE with JIT support as:
./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --libdir=/usr/lib/x86_64-linux-gnu \
            --enable-utf8 --enable-unicode-properties\
            --enable-pcre16                   \
            --enable-pcre32                   \
            --enable-pcregrep-libz            \
            --enable-pcregrep-libbz2          \
            --enable-pcretest-libreadline     \
            --disable-static --enable-jit

and then manually copying it to /lib/(distro-code), replacing link to an
old one into new one. That actually worked, but performance boost wasn't
really what I'd say "blazing" (no special test, just stress tests).
Perhaps, it would show more if you have large anti-spam ruleset and IP
filters.

Another point of note: I'm not exactly sure what would happen if we'd
try pcre32 lib instead of original. Would it work? Would it be faster?
If so, does it make any sense to make 64 bit version of it? Or it
doesn't matter much, because anyway we don't have much of rules?

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to pcre3 in Ubuntu.
https://bugs.launchpad.net/bugs/1285097

Title:
  PCRE JIT doesn't work on trusty

Status in “pcre3” package in Ubuntu:
  New

Bug description:
  Hello!

  I'm trying to utilize PCRE JIT on latest ubuntu trusty. Haproxy and
  nginx compile fine with PCRE JIT support, however JIT support doesn't
  work.

  Haproxy 1.5-dev22:
  --- snip ---
  HA-Proxy version 1.5-dev22-snapshot-20140225 2014/02/03
  Copyright 2000-2014 Willy Tarreau <w at 1wt.eu>

  Build options :
    TARGET  = linux2628
    CPU     = generic
    CC      = gcc
    CFLAGS  = -O3 -pipe -fomit-frame-pointer -funroll-loops -g
    OPTIONS = USE_LINUX_SPLICE=1 USE_CTTPROXY=1 USE_LINUX_TPROXY=1 USE_LIBCRYPT=1 USE_GETADDRINFO=1 USE_ZLIB=1 USE_CPU_AFFINITY=1 USE_REGPARM=1 USE_OPENSSL=1 USE_STATIC_PCRE=1 USE_PCRE_JIT=1 USE_TFO=1

  Default settings :
    maxconn = 2000, bufsize = 16384, maxrewrite = 8192, maxpollevents = 200

  Encrypted password support via crypt(3): yes
  Built with zlib version : 1.2.8
  Compression algorithms supported : identity, deflate, gzip
  Built with OpenSSL version : OpenSSL 1.0.1f 6 Jan 2014
  Running on OpenSSL version : OpenSSL 1.0.1f 6 Jan 2014
  OpenSSL library supports TLS extensions : yes
  OpenSSL library supports SNI : yes
  OpenSSL library supports prefer-server-ciphers : yes
  Built with PCRE version : 8.31 2012-07-06
  PCRE library supports JIT : no (libpcre build without JIT?)
  Built with transparent proxy support using: CTTPROXY IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
  --- snip ---

  Nginx 1.5.10:
  --- snip ---
  nginx: [warn] PCRE library does not support JIT in /etc/nginx/extra/nginx-main.conf:23
  nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
  nginx: configuration file /etc/nginx/nginx.conf test is successful
  --- snip ---

  I think that PCRE jit can have serious performance advantage with
  software that can utilize it (heavy loaded nginx/haproxy instances
  with lots of pcre rules).

  For performance comparisions see:
  http://sljit.sourceforge.net/regex_perf.html

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pcre3/+bug/1285097/+subscriptions



More information about the foundations-bugs mailing list