* [spp] [PATCH 1/2] docs: revise misc in setup section
2019-09-17 12:23 [spp] [PATCH 0/2] Revise GSG chapter yasufum.o
@ 2019-09-17 12:23 ` yasufum.o
2019-09-17 12:23 ` [spp] [PATCH 2/2] docs: update install section yasufum.o
1 sibling, 0 replies; 3+ messages in thread
From: yasufum.o @ 2019-09-17 12:23 UTC (permalink / raw)
To: spp, ferruh.yigit, yasufum.o
From: Yasufumi Ogawa <yasufum.o@gmail.com>
There are still ambiguous descriptions in setup guide, such as "Ubuntu
or CentOS?", "1GB or 2MB hugepages?" or so. This update is to revise the
descriptions.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
---
docs/guides/gsg/setup.rst | 42 +++++++++++++++++++++++----------------
1 file changed, 25 insertions(+), 17 deletions(-)
diff --git a/docs/guides/gsg/setup.rst b/docs/guides/gsg/setup.rst
index c0ccfd4..9bd30ef 100644
--- a/docs/guides/gsg/setup.rst
+++ b/docs/guides/gsg/setup.rst
@@ -11,7 +11,8 @@ Setup
This documentation is described for following distributions.
- Ubuntu 16.04 and 18.04
-- CentOS 7.6
+- CentOS 7.6 (not fully supported)
+
.. _gsg_reserve_hugep:
@@ -29,18 +30,20 @@ How to configure reserving hugepages is different between 2MB or 1GB.
In general, 1GB is better for getting high performance,
but 2MB is easier for configuration than 1GB.
+
1GB Hugepage
~~~~~~~~~~~~
-For 1GB page, hugepage setting is activated while booting system.
+For using 1GB page, hugepage setting is activated while booting system.
It must be defined in boot loader configuration, usually it is
``/etc/default/grub``.
Add an entry of configuration of the size and the number of pages.
-Here is an example for Ubuntu, but almost the same as CentOS. The point is
+Here is an example for Ubuntu, and almost the same as CentOS. The points are
that ``hugepagesz`` is for the size and ``hugepages`` is for the number of
pages.
-You can also configure isolcpus for performance tuning as described in
+You can also configure ``isolcpus`` in grub setting for improving performance
+as described in
:ref:`Performance Optimizing<gsg_performance_opt>`.
.. code-block:: none
@@ -54,21 +57,23 @@ config file, or this configuration is not activated.
.. code-block:: console
+ # Ubuntu
$ sudo update-grub
Generating grub configuration file ...
-For CentOS7, you use ``grub2-mkconfig`` instead of ``update-grub``.
+Or for CentOS7, you use ``grub2-mkconfig`` instead of ``update-grub``.
In this case, you should give the output file with ``-o`` option.
The output path might be different, so you should find your correct
``grub.cfg`` by yourself.
.. code-block:: console
+ # CentOS
$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
.. note::
- 1GB hugepages might possibly not be supported on your hardware.
+ 1GB hugepages might not be supported on your hardware.
It depends on that CPUs support 1GB pages or not. You can check it
by referring ``/proc/cpuinfo``. If it is supported, you can find
``pdpe1gb`` in the ``flags`` attribute.
@@ -78,10 +83,11 @@ The output path might be different, so you should find your correct
$ cat /proc/cpuinfo | grep pdpe1gb
flags : fpu vme ... pdpe1gb ...
+
2MB Hugepage
~~~~~~~~~~~~
-For 2MB page, you can activate hugepages while booting or at anytime
+For using 2MB page, you can activate hugepages while booting or at anytime
after system is booted.
Define hugepages setting in ``/etc/default/grub`` to activate it while
booting, or overwrite the number of 2MB hugepages as following.
@@ -90,7 +96,7 @@ booting, or overwrite the number of 2MB hugepages as following.
$ echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
-In this case, 1024 pages of 2MB (totally 2048 MB) are reserved.
+In this case, 1024 pages of 2MB, totally 2048 MB, are reserved.
Mount hugepages
@@ -104,9 +110,8 @@ Make the memory available for using hugepages from DPDK.
$ mount -t hugetlbfs nodev /mnt/huge
It is also available while booting by adding a configuration of mount
-point in ``/etc/fstab``, or after booted.
-
-The mount point for 2MB or 1GB can be made permanent accross reboot.
+point in ``/etc/fstab``.
+The mount point for 2MB or 1GB can be made permanently accross reboot.
For 2MB, it is no need to declare the size of hugepages explicity.
.. code-block:: none
@@ -114,7 +119,7 @@ For 2MB, it is no need to declare the size of hugepages explicity.
# /etc/fstab
nodev /mnt/huge hugetlbfs defaults 0 0
-For 1GB, the size of hugepage must be specified.
+For 1GB, the size of hugepage ``pagesize`` must be specified.
.. code-block:: none
@@ -159,8 +164,9 @@ Using Virtual Machine
---------------------
SPP provides vhost interface for inter VM communication.
-You can use any of hypervisors, but this document describes usecases of
-qemu and libvirt.
+You can use any of DPDK supported hypervisors, but this document describes
+usecases of qemu and libvirt.
+
Server mode v.s. Client mode
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -174,6 +180,7 @@ For using this mode, launch secondary process with ``--vhost-client``.
Qemu creates socket file instead of secondary process.
It means that you can launch a VM before secondary process create vhost port.
+
Libvirt
~~~~~~~
@@ -255,9 +262,9 @@ Or, you can also avoid by simply removing AppArmor itself.
$ sudo apt-get remove apparmor
-If you use CentOS, not Ubuntu, confirm that SELinux doesn't prevent
+If you use CentOS, confirm that SELinux doesn't prevent
for permission.
-SELinux should be disabled in this case.
+SELinux is disabled simply by changing the configuration to ``disabled``.
.. code-block:: console
@@ -275,7 +282,8 @@ Check your SELinux configuration.
Python 2 or 3 ?
---------------
-Python2 is not supported anymore for SPP.
+Without SPP container tools, Python2 is not supported anymore.
+SPP container will also be updated to Python3.
Reference
--
2.17.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [spp] [PATCH 2/2] docs: update install section
2019-09-17 12:23 [spp] [PATCH 0/2] Revise GSG chapter yasufum.o
2019-09-17 12:23 ` [spp] [PATCH 1/2] docs: revise misc in setup section yasufum.o
@ 2019-09-17 12:23 ` yasufum.o
1 sibling, 0 replies; 3+ messages in thread
From: yasufum.o @ 2019-09-17 12:23 UTC (permalink / raw)
To: spp, ferruh.yigit, yasufum.o
From: Yasufumi Ogawa <yasufum.o@gmail.com>
This update is to revise how to install Python packages with
`requirements.txt` to be more clear meaning.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
---
docs/guides/gsg/install.rst | 38 ++++++++++++++++++++-----------------
1 file changed, 21 insertions(+), 17 deletions(-)
diff --git a/docs/guides/gsg/install.rst b/docs/guides/gsg/install.rst
index c2763ad..335a151 100644
--- a/docs/guides/gsg/install.rst
+++ b/docs/guides/gsg/install.rst
@@ -7,13 +7,14 @@
Install DPDK and SPP
====================
-Before using SPP, you need to install DPDK.
+Before setting up SPP, you need to install DPDK.
In this document, briefly described how to install and setup DPDK.
Refer to `DPDK documentation
<https://dpdk.org/doc/guides/>`_ for more details.
For Linux, see `Getting Started Guide for Linux
<http://www.dpdk.org/doc/guides/linux_gsg/index.html>`_ .
+
.. _setup_install_packages:
Required Packages
@@ -22,10 +23,11 @@ Required Packages
Installing packages for DPDK and SPP is almost the on Ubunu and CentOS,
but names are different for some packages.
+
Ubuntu
~~~~~~
-To compile DPDK, required to install following packages.
+To compile DPDK, it is required to install following packages.
.. code-block:: console
@@ -39,8 +41,8 @@ You also need to install linux-headers of your kernel version.
$ sudo apt install linux-headers-$(uname -r)
-Some of secondary processes depend on external libraries and you failed to
-compile SPP without them.
+Some of SPP secondary processes depend on other libraries and you fail to
+compile SPP without installing them.
SPP provides libpcap-based PMD for dumping packet to a file or retrieve
it from the file.
@@ -82,9 +84,7 @@ To compile DPDK, required to install following packages.
kernel-headers \
kernel-devel
-Some of secondary processes depend on external libraries and you failed to
-compile SPP without them.
-
+As same as Ubuntu, you should install additional packages because
SPP provides libpcap-based PMD for dumping packet to a file or retrieve
it from the file.
``spp_nfv`` and ``spp_pcap`` use ``libpcap-dev`` for packet capture.
@@ -115,8 +115,8 @@ Clone repository and compile DPDK in any directory.
$ cd /path/to/any
$ git clone http://dpdk.org/git/dpdk
-Installing on Ubuntu and CentOS are almost the same, but packages are
-different.
+Installing on Ubuntu and CentOS are almost the same, but required packages
+are just bit different.
PCAP is disabled by default in DPDK configuration.
``CONFIG_RTE_LIBRTE_PMD_PCAP`` and ``CONFIG_RTE_PORT_PCAP`` defined in
@@ -139,7 +139,8 @@ Compile DPDK with target environment.
$ make install T=$RTE_TARGET
-PCAP is disabled by default in DPDK configuration.
+PCAP is disabled by default in DPDK configuration, so should be changed
+if you use this feature.
``CONFIG_RTE_LIBRTE_PMD_PCAP`` and ``CONFIG_RTE_PORT_PCAP`` defined in
config file ``common_base`` should be changed to ``y`` to enable PCAP.
@@ -150,7 +151,7 @@ config file ``common_base`` should be changed to ``y`` to enable PCAP.
...
CONFIG_RTE_PORT_PCAP=y
-Compile DPDK with target environment.
+Compile DPDK with options for target environment.
.. code-block:: console
@@ -163,7 +164,8 @@ Compile DPDK with target environment.
Pyhton
------
-Python3 and pip3 are also required if not installed.
+Python3 and pip3 are also required because SPP controller is implemented
+in Pyhton3. Required packages can be installed from ``requirements.txt``.
.. code-block:: console
@@ -206,8 +208,10 @@ Clone SPP repository and compile it in any directory.
$ cd spp
$ make # Confirm that $RTE_SDK and $RTE_TARGET are set
-If you use ``spp_mirror`` in deep copy mode, you should comment out
-the definition of copy mode in Makefile of ``spp_mirror`` before.
+If you use ``spp_mirror`` in deep copy mode,
+which is used for cloning whole of packet data for modification,
+you should change configuration of copy mode in Makefile of ``spp_mirror``
+before.
It is for copying full payload into a new mbuf.
Default mode is shallow copy.
@@ -324,9 +328,9 @@ cannot find it by using ``ifconfig`` or ``ip``.
Confirm DPDK is setup properly
------------------------------
-You can confirm if you are ready to use DPDK by running DPDK's sample
-application. ``l2fwd`` is good choice to confirm it before SPP because
-it is very similar to SPP's worker process for forwarding.
+For testing, you can confirm if you are ready to use DPDK by running
+DPDK's sample application. ``l2fwd`` is good example to confirm it
+before SPP because it is very similar to SPP's worker process for forwarding.
.. code-block:: console
--
2.17.1
^ permalink raw reply [flat|nested] 3+ messages in thread