Seastar uses the Data Plane Development Kit to drive NIC hardware directly. This provides an enormous performance boost.
To enable DPDK, specify --enable-dpdk
to ./configure.py
, and --dpdk-pmd
as a
run-time parameter. This will use the DPDK package provided as a git submodule with the
seastar sources.
Please note, if --enable-dpdk
is used to build DPDK on an aarch64 machine, you need to
specify target architecture with optional
feature modifiers
with the --cflags
option as well, like:
$ ./configure.py --mode debug --enable-dpdk --cflags='-march=armv8-a+crc+crypto'
To use your own self-compiled DPDK package, follow this procedure:
- Setup host to compile DPDK:
- Ubuntu
sudo apt-get install -y build-essential linux-image-extra-$(uname -r)
- Ubuntu
- Prepare a DPDK SDK:
- Download the latest DPDK release:
wget https://fast.dpdk.org/rel/dpdk-23.07.tar.xz
- Untar it.
- Follow the Quick Start Guide
- Pass
-Dmbuf_refcnt_atomic=false
to meson.
- Download the latest DPDK release:
- Modify the CMake cache (
CMakeCache.txt
) to inform CMake of the location of the installed DPDK SDK.