Skip to content

Installation

Ivan Koveshnikov edited this page Oct 20, 2022 · 7 revisions

Build a patched kernel version

Supported Linux kernel version: 5.17

To process reguler expressions at the highest speeds possible, the REGEX runtime must have access to vector instructions such as AVX2 or AVX512. As we propose to use REXEX runtime as an XDP helper function, and execute it inside the softIRQ context, where vector instructions are not available, a few patches are required for the Linux kernel.

The first and the most crucial patch is related to safe interaction with vector instruction set from the softIRQ context. Multiple subsystems in the Linux kernel take advantage of the vector instruction set, but the latter wasn't used in the softIRQ context before. To ensure the safe usage between the softIRQ and the process context, we have to disable preemption and interrupts while FPU is in use.

The next series of patches ( second, third) are required to make registering the XDP helper possible. Although the work on providing eBPF helpers inside loadable modules was started in Linux 5.16, it wasn't completed until Linux 5.18. We intend to update the module to use the latest stable kernel and these patch series are going to be obsoleted and not required.

Install from packeges

A pre-built package can be downloaded from the Releases page

Install from sources

Clone this wiki locally