]> git.proxmox.com Git - ceph.git/blame - ceph/src/seastar/README-DPDK.md
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / seastar / README-DPDK.md
CommitLineData
11fdf7f2
TL
1Seastar and DPDK
2================
3
4Seastar uses the Data Plane Development Kit to drive NIC hardware directly. This
5provides an enormous performance boost.
6
9f95a23c 7To enable DPDK, specify `--enable-dpdk` to `./configure.py`, and `--dpdk-pmd` as a
11fdf7f2
TL
8run-time parameter. This will use the DPDK package provided as a git submodule with the
9seastar sources.
10
1e59de90
TL
11Please note, if `--enable-dpdk` is used to build DPDK on an aarch64 machine, you need to
12specify [target architecture](https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html) with optional
13[feature modifiers](https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html#aarch64-feature-modifiers)
14with the `--cflags` option as well, like:
15```console
16$ ./configure.py --mode debug --enable-dpdk --cflags='-march=armv8-a+crc+crypto'
17```
18
11fdf7f2
TL
19To use your own self-compiled DPDK package, follow this procedure:
20
211. Setup host to compile DPDK:
22 - Ubuntu
23 `sudo apt-get install -y build-essential linux-image-extra-$(uname -r)`
242. Prepare a DPDK SDK:
25 - Download the latest DPDK release: `wget http://dpdk.org/browse/dpdk/snapshot/dpdk-2.0.0.tar.gz`
26 - Untar it.
27 - Edit config/common_linuxapp: set CONFIG_RTE_MBUF_REFCNT_ATOMIC and CONFIG_RTE_LIBRTE_KNI to 'n'.
28 - Start the tools/setup.sh script as root.
29 - Compile a linuxapp target (option 9).
30 - Install IGB_UIO module (option 12).
31 - Bind some physical port to IGB_UIO (option 18).
32 - Configure hugepage mappings (option 15/16).
333. Modify the CMake cache (`CMakeCache.txt`) to inform CMake of the location of the installed DPDK SDK.