seastar

High performance server-side application framework

6530
1287
C++

Seastar and DPDK

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:

  1. Setup host to compile DPDK:
    • Ubuntu
      sudo apt-get install -y build-essential linux-image-extra-$(uname -r)
  2. 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.
  3. Modify the CMake cache (CMakeCache.txt) to inform CMake of the location of the installed DPDK SDK.