mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2025-12-10 08:44:39 +01:00
Some checks are pending
Build all core packages / Build all core packages for selected target (push) Waiting to run
JIT support in pcre2 allows for extra performance for regex operations in applications that support it. As outlined in https://pcre.org/current/doc/html/pcre2jit.html#SEC2 64-bit ARM is supported. I tested this on an GL.Inet MT6000 which is an aarch64 device and to my knowledge everything works as expected. The primary application I tested this on was haproxy, which makes use pcre for several operations. If there are no known downsides or known breakages I suggest to default-enable this feature for aarch64. Signed-off-by: Christian Lachner <gladiac@gmail.com> Link: https://github.com/openwrt/openwrt/pull/20891 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
30 lines
1.6 KiB
Text
30 lines
1.6 KiB
Text
config PCRE2_JIT_ENABLED
|
|
bool
|
|
depends on PACKAGE_libpcre2 && (aarch64 || aarch64_be || arm || i386 || i686 || x86_64 || mips || mipsel || mips64 || mips64el || powerpc || powerpc64 || powerpcle || sparc)
|
|
default y if (aarch64 || arm || i686 || x86_64)
|
|
prompt "Enable JIT compiler support"
|
|
help
|
|
Enable JIT (Just-In-Time) compiler support.
|
|
|
|
Just-in-time compiling is a heavyweight optimization that can greatly
|
|
speed up pattern matching. However, it comes at the cost of extra
|
|
processing before the match is performed, so it is of most benefit when
|
|
the same pattern is going to be matched many times. This does not
|
|
necessarily mean many calls of a matching function; if the pattern is
|
|
not anchored, matching attempts may take place many times at various
|
|
positions in the subject, even for a single call. Therefore, if the
|
|
subject string is very long, it may still pay to use JIT even for
|
|
one-off matches. JIT support is available for all of the 8-bit, 16-bit
|
|
and 32-bit PCRE2 libraries and adds about 100KB to the resulting
|
|
libpcre2.so. JIT support applies only to the traditional Perl-compatible
|
|
matching function. It does not apply when the DFA matching function is
|
|
being used.
|
|
|
|
Enabling this option can give an about 10x performance increase on JIT
|
|
operations. It can be desireable for e.g. high performance Apache
|
|
mod_rewrite or HA-Proxy reqrep operations.
|
|
|
|
However, JIT should _only_ be enabled on architectures that are supported.
|
|
Enabling JIT on unsupported platforms will result in a compilation
|
|
failure. A list of supported architectures can be found here:
|
|
https://pcre.org/current/doc/html/pcre2jit.html#SEC2
|