test suite reviews and discussions
 help / color / mirror / Atom feed
From: Jun Dong <junx.dong@intel.com>
To: dts@dpdk.org
Cc: junx.dong@intel.com, Zhimin Huang <zhiminx.huang@intel.com>
Subject: [dts] [PATCH V1 2/2] user_guide: add setup_dut
Date: Wed, 16 Jun 2021 14:20:33 +0800	[thread overview]
Message-ID: <20210616062033.1825-2-junx.dong@intel.com> (raw)
In-Reply-To: <20210616062033.1825-1-junx.dong@intel.com>

From: Zhimin Huang <zhiminx.huang@intel.com>

Signed-off-by: Jun Dong <junx.dong@intel.com>
---
 doc/dts_gsg/usr_guide/index.rst     |   1 +
 doc/dts_gsg/usr_guide/setup_dut.rst | 150 ++++++++++++++++++++++++++++
 2 files changed, 151 insertions(+)
 create mode 100644 doc/dts_gsg/usr_guide/setup_dut.rst

diff --git a/doc/dts_gsg/usr_guide/index.rst b/doc/dts_gsg/usr_guide/index.rst
index f4104f85..04a71dc7 100644
--- a/doc/dts_gsg/usr_guide/index.rst
+++ b/doc/dts_gsg/usr_guide/index.rst
@@ -35,6 +35,7 @@ User Guide
 
     intro
     sys_reqs
+    setup_dut
     usage
     results
     trex
diff --git a/doc/dts_gsg/usr_guide/setup_dut.rst b/doc/dts_gsg/usr_guide/setup_dut.rst
new file mode 100644
index 00000000..c47db8b7
--- /dev/null
+++ b/doc/dts_gsg/usr_guide/setup_dut.rst
@@ -0,0 +1,150 @@
+Set up DUT
+===========
+
+This chapter describes the packages required to compile the DPDK in DUT.
+
+BIOS Setting Prerequisite on x86
+--------------------------------
+
+DPDK prefers devices bound to ``vfio-pci`` kernel module, therefore, `VT-x` and `VT-d` should be enabled.
+
+.. code-block:: console
+
+   Advanced -> Integrated IO Configuration -> Intel(R) VT for Directed I/O <Enabled>
+   Advanced -> Processor Configuration -> Intel(R) Virtualization Technology <Enabled>
+
+
+Set Hugepages
+------------------
+
+Hugepage support is required for the large memory pool allocation used for packet buffers
+(the HUGETLBFS option must be enabled in the running kernel as indicated the previous section).
+By using hugepage allocations, performance is increased since fewer pages are needed,
+and therefore less Translation Lookaside Buffers (TLBs, high speed translation caches),
+which reduce the time it takes to translate a virtual page address to a physical page address.
+Without hugepages, high TLB miss rates would occur with the standard 4k page size, slowing performance.
+
+
+Edit /etc/default/grub
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Set GRUB_CMDLINE_LINUX in etc/default/grub:
+
+for 2M pagesize::
+
+    GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt hugepagesz=2M hugepages=1024 default_hugepagesz=2M intel_pstate=disable"
+
+for 1G pagesize::
+
+    GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt hugepagesz=1G hugepages=16 default_hugepagesz=1G intel_pstate=disable"
+
+Execute grub-mkconfig
+~~~~~~~~~~~~~~~~~~~~~~~
+
+execute below command::
+
+    # grub-mkconfig -o /boot/grub/grub.cfg
+
+.. note::
+
+    some OS may need execute following command::
+
+        #grub2-mkconfig -o /boot/grub2/grub.cfg
+
+then reboot OS to make the hugepage setting take effect.
+
+Packages Required
+------------------
+
+**Required Tools and Libraries:**
+
+.. note::
+
+    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.
+
+*   General development tools including a supported C compiler such as gcc (version 4.9+) or clang (version 3.4+).
+
+    * For RHEL/Fedora systems these can be installed using ``dnf groupinstall "Development Tools"``
+
+    * For Ubuntu/Debian systems these can be installed using ``apt install build-essential``
+
+*   Python 3.5 or later.
+
+*   Meson (version 0.49.2+) and ninja
+
+    * ``meson`` & ``ninja-build`` packages in most Linux distributions
+
+    * If the packaged version is below the minimum version, the latest versions
+      can be installed from Python's "pip" repository: ``pip3 install meson ninja``
+
+*   ``pyelftools`` (version 0.22+)
+
+    * For Fedora systems it can be installed using ``dnf install python-pyelftools``
+
+    * For RHEL/CentOS systems it can be installed using ``pip3 install pyelftools``
+
+    * For Ubuntu/Debian it can be installed using ``apt install python3-pyelftools``
+
+*   Library for handling NUMA (Non Uniform Memory Access).
+
+    * ``numactl-devel`` in RHEL/Fedora;
+
+    * ``libnuma-dev`` in Debian/Ubuntu;
+
+.. note::
+
+   Please ensure that the latest patches are applied to third party libraries
+   and software to avoid any known vulnerabilities.
+
+
+**Optional Tools:**
+
+*   Intel® C++ Compiler (icc). For installation, additional libraries may be required.
+    See the icc Installation Guide found in the Documentation directory under the compiler installation.
+
+*   IBM® Advance ToolChain for Powerlinux. This is a set of open source development tools and runtime libraries
+    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.
+
+**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: for some unit tests using tar to get their resources.
+
+*   libelf: to compile and use the bpf library.
+
+
+Compile DPDK
+-------------
+
+Now we can compile the DPDK to check whether the DUT ENV is OK.
+
+commands::
+
+    CC=gcc meson --werror -Denable_kmods=True -Dlibdir=lib --default-library=static x86_64-native-linuxapp-gcc
+    ninja -C x86_64-native-linuxapp-gcc -j 110
+
+if there are no errors occurred during the compilation and the DPDK apps have been generated,
+it means the DUT ENV is OK now.
+
+Check dpdk-testpmd::
+
+    root@dpdk:~/dpdk# ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd --help
+    EAL: Detected 72 lcore(s)
+    EAL: Detected 2 NUMA nodes
+
+    Usage: ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd [options]
+
+    EAL common options:
+      -c COREMASK         Hexadecimal bitmask of cores to run on
+      -l CORELIST         List of cores to run on
+    ...
+    --match-allocations Free hugepages exactly as allocated
-- 
2.24.1.windows.2


  reply	other threads:[~2021-06-16  6:20 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-16  6:20 [dts] [PATCH V1 1/2] doc/dts_gsg: update some commands Jun Dong
2021-06-16  6:20 ` Jun Dong [this message]
2021-06-18  7:23   ` [dts] [PATCH V1 2/2] user_guide: add setup_dut Tu, Lijuan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210616062033.1825-2-junx.dong@intel.com \
    --to=junx.dong@intel.com \
    --cc=dts@dpdk.org \
    --cc=zhiminx.huang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).