X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Flinux_gsg%2Fsys_reqs.rst;h=6ecdc04aa95444bef1cf6d983bfc6619cfb32a92;hb=08b1d50543dea1a9e817f67f4b97ea22347e2a09;hp=e582f63dec144cde416542d8b0c7c2022ec34a93;hpb=5630257fcc30397e7217139ec55da4f301f59fb7;p=dpdk.git diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index e582f63dec..6ecdc04aa9 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -34,39 +34,36 @@ Compilation of the DPDK .. note:: - Testing has been performed using Fedora 18. The setup commands and installed packages needed on other systems may be different. - For details on other Linux distributions and the versions tested, please consult the DPDK Release Notes. + The setup commands and installed packages needed on various systems may be different. + For details on Linux distributions and the versions tested, please consult the DPDK Release Notes. -* GNU ``make``. +* General development tools including a supported C compiler such as gcc (version 4.9+) or clang (version 3.4+). -* coreutils: ``cmp``, ``sed``, ``grep``, ``arch``, etc. + * For RHEL/Fedora systems these can be installed using ``dnf groupinstall "Development Tools"`` -* gcc: versions 4.9 or later is recommended for all platforms. - On some distributions, some specific compiler flags and linker flags are enabled by - default and affect performance (``-fstack-protector``, for example). Please refer to the documentation - of your distribution and to ``gcc -dumpspecs``. + * For Ubuntu/Debian systems these can be installed using ``apt install build-essential`` -* libc headers, often packaged as ``gcc-multilib`` (``glibc-devel.i686`` / ``libc6-dev-i386``; - ``glibc-devel.x86_64`` / ``libc6-dev`` for 64-bit compilation on Intel architecture; - ``glibc-devel.ppc64`` for 64 bit IBM Power architecture;) +* Python 3.5 or later. -* Linux kernel headers or sources required to build kernel modules. (kernel - devel.x86_64; - kernel - devel.ppc64) +* Meson (version 0.47.1+) and ninja -* Additional packages required for 32-bit compilation on 64-bit systems are: + * ``meson`` & ``ninja-build`` packages in most Linux distributions - * glibc.i686, libgcc.i686, libstdc++.i686 and glibc-devel.i686 for Intel i686/x86_64; + * If the packaged version is below the minimum version, the latest versions + can be installed from Python's "pip" repository: ``pip3 install meson ninja`` - * glibc.ppc64, libgcc.ppc64, libstdc++.ppc64 and glibc-devel.ppc64 for IBM ppc_64; +* Library for handling NUMA (Non Uniform Memory Access). - .. note:: + * ``numactl-devel`` in RHEL/Fedora; - x86_x32 ABI is currently supported with distribution packages only on Ubuntu - higher than 13.10 or recent Debian distribution. The only supported compiler is gcc 4.9+. + * ``libnuma-dev`` in Debian/Ubuntu; -* libnuma-devel - library for handling NUMA (Non Uniform Memory Access). +* Linux kernel headers or sources required to build kernel modules. -* Python, version 2.7+ or 3.2+, to use various helper scripts included in the DPDK package. +.. note:: + + Please ensure that the latest patches are applied to third party libraries + and software to avoid any known vulnerabilities. **Optional Tools:** @@ -78,10 +75,23 @@ Compilation of the DPDK which allows users to take leading edge advantage of IBM's latest POWER hardware features on Linux. To install it, see the IBM official installation document. -* libpcap headers and libraries (libpcap-devel) to compile and use the libpcap-based poll-mode driver. - This driver is disabled by default and can be enabled by setting ``CONFIG_RTE_LIBRTE_PMD_PCAP=y`` in the build time config file. +**Additional Libraries** + +A number of DPDK components, such as libraries and poll-mode drivers (PMDs) have additional dependencies. +For DPDK builds, the presence or absence of these dependencies will be automatically detected +enabling or disabling the relevant components appropriately. + +In each case, the relevant library development package (``-devel`` or ``-dev``) is needed to build the DPDK components. + +For libraries the additional dependencies include: -* libarchive headers and library are needed for some unit tests using tar to get their resources. +* libarchive: for some unit tests using tar to get their resources. + +* libelf: to compile and use the bpf library. + +For poll-mode drivers, the additional dependencies for each driver can be +found in that driver's documentation in the relevant DPDK guide document, +e.g. :doc:`../nics/index` Running DPDK Applications @@ -94,10 +104,11 @@ System Software **Required:** -* Kernel version >= 3.2 +* Kernel version >= 3.16 The kernel version required is based on the oldest long term stable kernel available at kernel.org when the DPDK version is in development. + Compatibility for recent distribution kernels will be kept, notably RHEL/CentOS 7. The kernel version in use can be checked using the command:: @@ -164,7 +175,7 @@ In the case of a dual-socket NUMA system, the number of hugepages reserved at boot time is generally divided equally between the two sockets (on the assumption that sufficient memory is present on both sockets). -See the Documentation/kernel-parameters.txt file in your Linux source tree for further details of these and other kernel options. +See the Documentation/admin-guide/kernel-parameters.txt file in your Linux source tree for further details of these and other kernel options. **Alternative:** @@ -183,12 +194,6 @@ On a NUMA machine, pages should be allocated explicitly on separate nodes:: For 1G pages, it is not possible to reserve the hugepage memory after the system has booted. - On IBM POWER system, the nr_overcommit_hugepages should be set to the same value as nr_hugepages. - For example, if the required page number is 128, the following commands are used:: - - echo 128 > /sys/kernel/mm/hugepages/hugepages-16384kB/nr_hugepages - echo 128 > /sys/kernel/mm/hugepages/hugepages-16384kB/nr_overcommit_hugepages - Using Hugepages with the DPDK ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^