4f3ec02230
Change-Id: I47e19e5cf06b117c915ff1ed7bc69d70feef593b Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
53 lines
2.4 KiB
Plaintext
53 lines
2.4 KiB
Plaintext
dpdk for Debian
|
|
---------------
|
|
|
|
This package is currently compiled for the lowest possible CPU requirements.
|
|
Which still requires at least SSE3 to be supported by the CPU.
|
|
|
|
dpdk (runtime) / libdpdk0:
|
|
|
|
For runtime /etc/dpdk/interfaces holds a list of PCI devices to be assigned
|
|
to DPDK compatible drivers and /etc/dpdk/dpdk.conf allows one to define the
|
|
number of hugepages to be reserved at boot.
|
|
The runtime environment is not required to build applications that use
|
|
DPDK but if those applications get packaged they should depend on the
|
|
runtime.
|
|
|
|
Since DPDK technically would be able to use all of your compatible card/driver
|
|
combination it is required that you take care of blacklisting / whitelisting
|
|
network cards to tell dpdk which it has to to initialize (especially true for
|
|
virtio-pci as the normal kernel driver is considered compatible).
|
|
|
|
If you are working with virtio-pci network cards it isn't a hard requirement to
|
|
assign them to a dpdk compatible userspace driver like uio_pci_generic. But you
|
|
have to at least unbind them from the default kernel driver (virtio-pci) to
|
|
avoid bugs by dpdk and the kernel working on them simultaneously. It is
|
|
recommended to reassign them to dpdk compatible drivers using
|
|
/etc/dpdk/interfaces (just as you would with any physical card).
|
|
|
|
libdpdk0 contains the shared object needed to run a program in terms of symbol
|
|
resolution, but none of the other runtime environment pieces.
|
|
|
|
dpdk-dev / libdpdk-dev:
|
|
|
|
The minimum requirement for developing external applications is libdpdk-dev,
|
|
which brings the headers and library files.
|
|
|
|
In dpdk-dev is the upstream makefile environment. Sample applications, which
|
|
are shipped in dpdk-doc, are providing makefiles.
|
|
Those makefiles need to find the dpdk build system. To do so they need some
|
|
environment variables defined:
|
|
export RTE_TARGET="$(uname -m)-default-linuxapp-gcc"
|
|
export RTE_SDK="/usr/share/dpdk/"
|
|
export RTE_INCLUDE="/usr/include/dpdk"
|
|
Those can be set by the user to overwrite with a custom path/config. If no
|
|
custom environment is used it is recommended to source the file
|
|
/usr/share/dpdk/dpdk-sdk-env.sh which comes with dpdk-dev.
|
|
If the paths ever change or there will be more/less variables needed to build
|
|
against dpdk-dev that file will be adjusted for you.
|
|
|
|
Alternatively /usr/include/dpdk/rte_config.h has to be pre-included:
|
|
CFLAGS += -I/usr/include/dpdk -irte_config.h
|
|
|
|
-- Christian Ehrhardt <christian.ehrhardt@canonical.com> Thu, 04 Feb 2016 09:16:11 +0100
|