* [dpdk-dev] [PATCH v2 1/6] usertools/setup: remove make based build
2020-11-26 14:18 [dpdk-dev] [PATCH v2 0/6] update dpdk-setup.sh Ferruh Yigit
@ 2020-11-26 14:18 ` Ferruh Yigit
2020-11-26 14:44 ` Walsh, Conor
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 2/6] usertools/setup: remove inserting custom kernel modules Ferruh Yigit
` (5 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Ferruh Yigit @ 2020-11-26 14:18 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Ferruh Yigit, dev, techboard, Stephen Hemminger,
Bruce Richardson, conor.walsh
DPDK build system is switched to 'meson' based build, please check the
documentation for details: "doc/guides/linux_gsg/build_dpdk.rst"
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
doc/guides/linux_gsg/quick_start.rst | 180 +++++----------------------
usertools/dpdk-setup.sh | 74 +----------
2 files changed, 35 insertions(+), 219 deletions(-)
diff --git a/doc/guides/linux_gsg/quick_start.rst b/doc/guides/linux_gsg/quick_start.rst
index 181ec00ad41d..b9ac94bd6f4b 100644
--- a/doc/guides/linux_gsg/quick_start.rst
+++ b/doc/guides/linux_gsg/quick_start.rst
@@ -8,8 +8,6 @@ Quick Start Setup Script
The dpdk-setup.sh script, found in the usertools subdirectory, allows the user to perform the following tasks:
-* Build the DPDK libraries
-
* Insert and remove the DPDK IGB_UIO kernel module
* Insert and remove VFIO kernel modules
@@ -28,10 +26,7 @@ The dpdk-setup.sh script, found in the usertools subdirectory, allows the user t
* List hugepages in ``/mnt/huge``
-* Remove built DPDK libraries
-
-Once these steps have been completed for one of the EAL targets,
-the user may compile their own application that links in the EAL libraries to create the DPDK image.
+Please refer to :doc:`../prog_guide/build-sdk-meson` for building DPDK.
Script Organization
-------------------
@@ -40,31 +35,24 @@ The dpdk-setup.sh script is logically organized into a series of steps that a us
Each step provides a number of options that guide the user to completing the desired task.
The following is a brief synopsis of each step.
-**Step 1: Build DPDK Libraries**
-
-Initially, the user must select a DPDK target to choose the correct target type and compiler options to use when building the libraries.
-
-The user must have all libraries, modules, updates and compilers installed in the system prior to this,
-as described in the earlier chapters in this Getting Started Guide.
-
-**Step 2: Setup Environment**
+**Step 1: Setup Environment**
The user configures the Linux* environment to support the running of DPDK applications.
Hugepages can be set up for NUMA or non-NUMA systems. Any existing hugepages will be removed.
The DPDK kernel module that is needed can also be inserted in this step,
and network ports may be bound to this module for DPDK application use.
-**Step 3: Run an Application**
+**Step 2: Run an Application**
The user may run the test application once the other steps have been performed.
The test application allows the user to run a series of functional tests for the DPDK.
The testpmd application, which supports the receiving and sending of packets, can also be run.
-**Step 4: Examining the System**
+**Step 3: Examining the System**
This step provides some tools for examining the status of hugepage mappings.
-**Step 5: System Cleanup**
+**Step 4: System Cleanup**
The final step has options for restoring the system to its original state.
@@ -89,109 +77,71 @@ Some options in the script prompt the user for further data before proceeding.
------------------------------------------------------------------------
- Step 1: Select the DPDK environment to build
-
- ------------------------------------------------------------------------
-
- [1] i686-native-linux-gcc
-
- [2] i686-native-linux-icc
-
- [3] ppc_64-power8-linux-gcc
-
- [4] x86_64-native-freebsd-clang
-
- [5] x86_64-native-freebsd-gcc
-
- [6] x86_64-native-linux-clang
-
- [7] x86_64-native-linux-gcc
-
- [8] x86_64-native-linux-icc
-
- ------------------------------------------------------------------------
-
- Step 2: Setup linux environment
+ Step 1: Setup linux environment
------------------------------------------------------------------------
- [11] Insert IGB UIO module
+ [1] Insert IGB UIO module
- [12] Insert VFIO module
+ [2] Insert VFIO module
- [13] Insert KNI module
+ [3] Insert KNI module
- [14] Setup hugepage mappings for non-NUMA systems
+ [4] Setup hugepage mappings for non-NUMA systems
- [15] Setup hugepage mappings for NUMA systems
+ [5] Setup hugepage mappings for NUMA systems
- [16] Display current Ethernet device settings
+ [6] Display current Ethernet device settings
- [17] Bind Ethernet device to IGB UIO module
+ [7] Bind Ethernet device to IGB UIO module
- [18] Bind Ethernet device to VFIO module
+ [8] Bind Ethernet device to VFIO module
- [19] Setup VFIO permissions
+ [9] Setup VFIO permissions
------------------------------------------------------------------------
- Step 3: Run test application for linux environment
+ Step 2: Run test application for linux environment
------------------------------------------------------------------------
- [20] Run test application ($RTE_TARGET/app/test)
+ [10] Run test application ($RTE_TARGET/app/test)
- [21] Run testpmd application in interactive mode ($RTE_TARGET/app/testpmd)
+ [11] Run testpmd application in interactive mode ($RTE_TARGET/app/testpmd)
------------------------------------------------------------------------
- Step 4: Other tools
+ Step 3: Other tools
------------------------------------------------------------------------
- [22] List hugepage info from /proc/meminfo
+ [12] List hugepage info from /proc/meminfo
------------------------------------------------------------------------
- Step 5: Uninstall and system cleanup
+ Step 4: Uninstall and system cleanup
------------------------------------------------------------------------
- [23] Uninstall all targets
-
- [24] Unbind NICs from IGB UIO driver
-
- [25] Remove IGB UIO module
-
- [26] Remove VFIO module
-
- [27] Remove KNI module
-
- [28] Remove hugepage mappings
-
- [29] Exit Script
+ [13] Unbind NICs from IGB UIO driver
-Option:
+ [14] Remove IGB UIO module
-The following selection demonstrates the creation of the ``x86_64-native-linux-gcc`` DPDK library.
+ [15] Remove VFIO module
-.. code-block:: console
+ [16] Remove KNI module
- Option: 9
+ [17] Remove hugepage mappings
- ================== Installing x86_64-native-linux-gcc
+ [18] Exit Script
- Configuration done
- == Build lib
- ...
- Build complete
- RTE_TARGET exported as x86_64-native-linux-gcc
+ Option:
The following selection demonstrates the starting of the DPDK UIO driver.
.. code-block:: console
- Option: 25
+ Option: 14
Unloading any existing DPDK UIO module
Loading DPDK UIO module
@@ -207,7 +157,7 @@ The result is that the application should use -m 4096 for starting the applicati
.. code-block:: console
- Option: 15
+ Option: 5
Removing currently reserved hugepages
mounting /mnt/huge and removing directory
@@ -223,7 +173,7 @@ The following selection demonstrates the launch of the test application to run o
.. code-block:: console
- Option: 20
+ Option: 10
Enter hex bitmask of cores to execute test app on
Example: to execute app on cores 0 to 7, enter 0xff
@@ -234,71 +184,3 @@ The following selection demonstrates the launch of the test application to run o
...
EAL: Main core 0 is ready (tid=1b2ad720)
RTE>>
-
-Applications
-------------
-
-Once the user has run the dpdk-setup.sh script, built one of the EAL targets and set up hugepages (if using one of the Linux EAL targets),
-the user can then move on to building and running their application or one of the examples provided.
-
-The examples in the /examples directory provide a good starting point to gain an understanding of the operation of the DPDK.
-The following command sequence shows how the helloworld sample application is built and run.
-As recommended in Section 4.2.1 , "Logical Core Use by Applications",
-the logical core layout of the platform should be determined when selecting a core mask to use for an application.
-
-.. code-block:: console
-
- cd helloworld/
- make
- CC main.o
- LD helloworld
- INSTALL-APP helloworld
- INSTALL-MAP helloworld.map
-
- sudo ./build/app/helloworld -l 0-3 -n 3
- [sudo] password for rte:
-
- EAL: coremask set to f
- EAL: Detected lcore 0 as core 0 on socket 0
- EAL: Detected lcore 1 as core 0 on socket 1
- EAL: Detected lcore 2 as core 1 on socket 0
- EAL: Detected lcore 3 as core 1 on socket 1
- EAL: Setting up hugepage memory...
- EAL: Ask a virtual area of 0x200000 bytes
- EAL: Virtual area found at 0x7f0add800000 (size = 0x200000)
- EAL: Ask a virtual area of 0x3d400000 bytes
- EAL: Virtual area found at 0x7f0aa0200000 (size = 0x3d400000)
- EAL: Ask a virtual area of 0x400000 bytes
- EAL: Virtual area found at 0x7f0a9fc00000 (size = 0x400000)
- EAL: Ask a virtual area of 0x400000 bytes
- EAL: Virtual area found at 0x7f0a9f600000 (size = 0x400000)
- EAL: Ask a virtual area of 0x400000 bytes
- EAL: Virtual area found at 0x7f0a9f000000 (size = 0x400000)
- EAL: Ask a virtual area of 0x800000 bytes
- EAL: Virtual area found at 0x7f0a9e600000 (size = 0x800000)
- EAL: Ask a virtual area of 0x800000 bytes
- EAL: Virtual area found at 0x7f0a9dc00000 (size = 0x800000)
- EAL: Ask a virtual area of 0x400000 bytes
- EAL: Virtual area found at 0x7f0a9d600000 (size = 0x400000)
- EAL: Ask a virtual area of 0x400000 bytes
- EAL: Virtual area found at 0x7f0a9d000000 (size = 0x400000)
- EAL: Ask a virtual area of 0x400000 bytes
- EAL: Virtual area found at 0x7f0a9ca00000 (size = 0x400000)
- EAL: Ask a virtual area of 0x200000 bytes
- EAL: Virtual area found at 0x7f0a9c600000 (size = 0x200000)
- EAL: Ask a virtual area of 0x200000 bytes
- EAL: Virtual area found at 0x7f0a9c200000 (size = 0x200000)
- EAL: Ask a virtual area of 0x3fc00000 bytes
- EAL: Virtual area found at 0x7f0a5c400000 (size = 0x3fc00000)
- EAL: Ask a virtual area of 0x200000 bytes
- EAL: Virtual area found at 0x7f0a5c000000 (size = 0x200000)
- EAL: Requesting 1024 pages of size 2MB from socket 0
- EAL: Requesting 1024 pages of size 2MB from socket 1
- EAL: Main core 0 is ready (tid=de25b700)
- EAL: Core 1 is ready (tid=5b7fe700)
- EAL: Core 3 is ready (tid=5a7fc700)
- EAL: Core 2 is ready (tid=5affd700)
- hello from core 1
- hello from core 2
- hello from core 3
- hello from core 0
diff --git a/usertools/dpdk-setup.sh b/usertools/dpdk-setup.sh
index 411bf2e07f5e..d1eb188692a6 100755
--- a/usertools/dpdk-setup.sh
+++ b/usertools/dpdk-setup.sh
@@ -36,53 +36,6 @@ q()
quit
}
-#
-# Sets up environmental variables for ICC.
-#
-setup_icc()
-{
- DEFAULT_PATH=/opt/intel/bin/iccvars.sh
- param=$1
- shpath=`which iccvars.sh 2> /dev/null`
- if [ $? -eq 0 ] ; then
- echo "Loading iccvars.sh from $shpath for $param"
- source $shpath $param
- elif [ -f $DEFAULT_PATH ] ; then
- echo "Loading iccvars.sh from $DEFAULT_PATH for $param"
- source $DEFAULT_PATH $param
- else
- echo "## ERROR: cannot find 'iccvars.sh' script to set up ICC."
- echo "## To fix, please add the directory that contains"
- echo "## iccvars.sh to your 'PATH' environment variable."
- quit
- fi
-}
-
-#
-# Sets RTE_TARGET and does a "make install".
-#
-setup_target()
-{
- option=$1
- export RTE_TARGET=${TARGETS[option]}
-
- compiler=${RTE_TARGET##*-}
- if [ "$compiler" == "icc" ] ; then
- platform=${RTE_TARGET%%-*}
- if [ "$platform" == "x86_64" ] ; then
- setup_icc intel64
- else
- setup_icc ia32
- fi
- fi
- if [ "$QUIT" == "0" ] ; then
- make install T=${RTE_TARGET}
- fi
- echo "------------------------------------------------------------------------------"
- echo " RTE_TARGET exported as $RTE_TARGET"
- echo "------------------------------------------------------------------------------"
-}
-
#
# Creates hugepage filesystem.
#
@@ -456,28 +409,10 @@ unbind_devices()
sudo ${RTE_SDK}/usertools/dpdk-devbind.py -b $DRV $PCI_PATH && echo "OK"
}
-#
-# Options for building a target. Note that this step MUST be first as it sets
-# up TARGETS[] starting from 1, and this is accessed in setup_target using the
-# user entered option.
-#
-step1_func()
-{
- TITLE="Select the DPDK environment to build"
- CONFIG_NUM=1
- for cfg in config/defconfig_* ; do
- cfg=${cfg/config\/defconfig_/}
- TEXT[$CONFIG_NUM]="$cfg"
- TARGETS[$CONFIG_NUM]=$cfg
- FUNC[$CONFIG_NUM]="setup_target"
- let "CONFIG_NUM+=1"
- done
-}
-
#
# Options for setting up environment.
#
-step2_func()
+step1_func()
{
TITLE="Setup linux environment"
@@ -512,7 +447,7 @@ step2_func()
#
# Options for running applications.
#
-step3_func()
+step2_func()
{
TITLE="Run test application for linux environment"
@@ -526,7 +461,7 @@ step3_func()
#
# Other options
#
-step4_func()
+step3_func()
{
TITLE="Other tools"
@@ -538,7 +473,7 @@ step4_func()
#
# Options for cleaning up the system
#
-step5_func()
+step4_func()
{
TITLE="Uninstall and system cleanup"
@@ -562,7 +497,6 @@ STEPS[1]="step1_func"
STEPS[2]="step2_func"
STEPS[3]="step3_func"
STEPS[4]="step4_func"
-STEPS[5]="step5_func"
QUIT=0
--
2.26.2
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [dpdk-dev] [PATCH v2 1/6] usertools/setup: remove make based build
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 1/6] usertools/setup: remove make based build Ferruh Yigit
@ 2020-11-26 14:44 ` Walsh, Conor
0 siblings, 0 replies; 18+ messages in thread
From: Walsh, Conor @ 2020-11-26 14:44 UTC (permalink / raw)
To: Yigit, Ferruh, Thomas Monjalon
Cc: dev, techboard, Stephen Hemminger, Richardson, Bruce
Hi Ferruh,
Tested V2 patch, the docs also build successfully.
Thanks,
Conor.
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> Sent: Thursday 26 November 2020 14:18
> To: Thomas Monjalon <thomas@monjalon.net>
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; dev@dpdk.org;
> techboard@dpdk.org; Stephen Hemminger
> <stephen@networkplumber.org>; Richardson, Bruce
> <bruce.richardson@intel.com>; Walsh, Conor <conor.walsh@intel.com>
> Subject: [PATCH v2 1/6] usertools/setup: remove make based build
>
> DPDK build system is switched to 'meson' based build, please check the
> documentation for details: "doc/guides/linux_gsg/build_dpdk.rst"
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Conor Walsh <conor.walsh@intel.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [dpdk-dev] [PATCH v2 2/6] usertools/setup: remove inserting custom kernel modules
2020-11-26 14:18 [dpdk-dev] [PATCH v2 0/6] update dpdk-setup.sh Ferruh Yigit
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 1/6] usertools/setup: remove make based build Ferruh Yigit
@ 2020-11-26 14:18 ` Ferruh Yigit
2020-11-26 14:49 ` Walsh, Conor
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 3/6] usertools/setup: remove running built applications Ferruh Yigit
` (4 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Ferruh Yigit @ 2020-11-26 14:18 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Ferruh Yigit, dev, techboard, Stephen Hemminger,
Bruce Richardson, conor.walsh
Custom DPDK kernel module insert support relies on make based build
variable 'RTE_TARGET' to find the location of the kernel modules, which
is not valid anymore.
Also 'igb_uio' kernel module moved to another git repository:
https://git.dpdk.org/dpdk-kmods/
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
doc/guides/linux_gsg/quick_start.rst | 51 +++++++---------
usertools/dpdk-setup.sh | 91 +++++-----------------------
2 files changed, 37 insertions(+), 105 deletions(-)
diff --git a/doc/guides/linux_gsg/quick_start.rst b/doc/guides/linux_gsg/quick_start.rst
index b9ac94bd6f4b..14c4c7763aed 100644
--- a/doc/guides/linux_gsg/quick_start.rst
+++ b/doc/guides/linux_gsg/quick_start.rst
@@ -8,11 +8,11 @@ Quick Start Setup Script
The dpdk-setup.sh script, found in the usertools subdirectory, allows the user to perform the following tasks:
-* Insert and remove the DPDK IGB_UIO kernel module
-
* Insert and remove VFIO kernel modules
-* Insert and remove the DPDK KNI kernel module
+* Remove the DPDK IGB_UIO kernel module
+
+* Remove the DPDK KNI kernel module
* Create and delete hugepages for NUMA and non-NUMA cases
@@ -39,8 +39,7 @@ The following is a brief synopsis of each step.
The user configures the Linux* environment to support the running of DPDK applications.
Hugepages can be set up for NUMA or non-NUMA systems. Any existing hugepages will be removed.
-The DPDK kernel module that is needed can also be inserted in this step,
-and network ports may be bound to this module for DPDK application use.
+Network ports may be bound to DPDK kernel module for DPDK application use.
**Step 2: Run an Application**
@@ -81,23 +80,19 @@ Some options in the script prompt the user for further data before proceeding.
------------------------------------------------------------------------
- [1] Insert IGB UIO module
-
- [2] Insert VFIO module
-
- [3] Insert KNI module
+ [1] Insert VFIO module
- [4] Setup hugepage mappings for non-NUMA systems
+ [2] Setup hugepage mappings for non-NUMA systems
- [5] Setup hugepage mappings for NUMA systems
+ [3] Setup hugepage mappings for NUMA systems
- [6] Display current Ethernet device settings
+ [4] Display current Ethernet device settings
- [7] Bind Ethernet device to IGB UIO module
+ [5] Bind Ethernet device to IGB UIO module
- [8] Bind Ethernet device to VFIO module
+ [6] Bind Ethernet device to VFIO module
- [9] Setup VFIO permissions
+ [7] Setup VFIO permissions
------------------------------------------------------------------------
@@ -105,9 +100,9 @@ Some options in the script prompt the user for further data before proceeding.
------------------------------------------------------------------------
- [10] Run test application ($RTE_TARGET/app/test)
+ [8] Run test application ($RTE_TARGET/app/test)
- [11] Run testpmd application in interactive mode ($RTE_TARGET/app/testpmd)
+ [9] Run testpmd application in interactive mode ($RTE_TARGET/app/testpmd)
------------------------------------------------------------------------
@@ -115,7 +110,7 @@ Some options in the script prompt the user for further data before proceeding.
------------------------------------------------------------------------
- [12] List hugepage info from /proc/meminfo
+ [10] List hugepage info from /proc/meminfo
------------------------------------------------------------------------
@@ -123,17 +118,17 @@ Some options in the script prompt the user for further data before proceeding.
------------------------------------------------------------------------
- [13] Unbind NICs from IGB UIO driver
+ [11] Unbind NICs from IGB UIO driver
- [14] Remove IGB UIO module
+ [12] Remove IGB UIO module
- [15] Remove VFIO module
+ [13] Remove VFIO module
- [16] Remove KNI module
+ [14] Remove KNI module
- [17] Remove hugepage mappings
+ [15] Remove hugepage mappings
- [18] Exit Script
+ [16] Exit Script
Option:
@@ -141,7 +136,7 @@ The following selection demonstrates the starting of the DPDK UIO driver.
.. code-block:: console
- Option: 14
+ Option: 12
Unloading any existing DPDK UIO module
Loading DPDK UIO module
@@ -157,7 +152,7 @@ The result is that the application should use -m 4096 for starting the applicati
.. code-block:: console
- Option: 5
+ Option: 3
Removing currently reserved hugepages
mounting /mnt/huge and removing directory
@@ -173,7 +168,7 @@ The following selection demonstrates the launch of the test application to run o
.. code-block:: console
- Option: 10
+ Option: 8
Enter hex bitmask of cores to execute test app on
Example: to execute app on cores 0 to 7, enter 0xff
diff --git a/usertools/dpdk-setup.sh b/usertools/dpdk-setup.sh
index d1eb188692a6..bcf0c843678f 100755
--- a/usertools/dpdk-setup.sh
+++ b/usertools/dpdk-setup.sh
@@ -78,39 +78,6 @@ remove_igb_uio_module()
fi
}
-#
-# Loads new igb_uio.ko (and uio module if needed).
-#
-load_igb_uio_module()
-{
- if [ ! -f $RTE_SDK/$RTE_TARGET/kmod/igb_uio.ko ];then
- echo "## ERROR: Target does not have the DPDK UIO Kernel Module."
- echo " To fix, please try to rebuild target."
- return
- fi
-
- remove_igb_uio_module
-
- /sbin/lsmod | grep -s uio > /dev/null
- if [ $? -ne 0 ] ; then
- modinfo uio > /dev/null
- if [ $? -eq 0 ]; then
- echo "Loading uio module"
- sudo /sbin/modprobe uio
- fi
- fi
-
- # UIO may be compiled into kernel, so it may not be an error if it can't
- # be loaded.
-
- echo "Loading DPDK UIO module"
- sudo /sbin/insmod $RTE_SDK/$RTE_TARGET/kmod/igb_uio.ko
- if [ $? -ne 0 ] ; then
- echo "## ERROR: Could not load kmod/igb_uio.ko."
- quit
- fi
-}
-
#
# Unloads VFIO modules.
#
@@ -171,30 +138,6 @@ remove_kni_module()
fi
}
-#
-# Loads the rte_kni.ko module.
-#
-load_kni_module()
-{
- # Check that the KNI module is already built.
- if [ ! -f $RTE_SDK/$RTE_TARGET/kmod/rte_kni.ko ];then
- echo "## ERROR: Target does not have the DPDK KNI Module."
- echo " To fix, please try to rebuild target."
- return
- fi
-
- # Unload existing version if present.
- remove_kni_module
-
- # Now try load the KNI module.
- echo "Loading DPDK KNI module"
- sudo /sbin/insmod $RTE_SDK/$RTE_TARGET/kmod/rte_kni.ko
- if [ $? -ne 0 ] ; then
- echo "## ERROR: Could not load kmod/rte_kni.ko."
- quit
- fi
-}
-
#
# Sets appropriate permissions on /dev/vfio/* files
#
@@ -416,32 +359,26 @@ step1_func()
{
TITLE="Setup linux environment"
- TEXT[1]="Insert IGB UIO module"
- FUNC[1]="load_igb_uio_module"
-
- TEXT[2]="Insert VFIO module"
- FUNC[2]="load_vfio_module"
-
- TEXT[3]="Insert KNI module"
- FUNC[3]="load_kni_module"
+ TEXT[1]="Insert VFIO module"
+ FUNC[1]="load_vfio_module"
- TEXT[4]="Setup hugepage mappings for non-NUMA systems"
- FUNC[4]="set_non_numa_pages"
+ TEXT[2]="Setup hugepage mappings for non-NUMA systems"
+ FUNC[2]="set_non_numa_pages"
- TEXT[5]="Setup hugepage mappings for NUMA systems"
- FUNC[5]="set_numa_pages"
+ TEXT[3]="Setup hugepage mappings for NUMA systems"
+ FUNC[3]="set_numa_pages"
- TEXT[6]="Display current Ethernet/Baseband/Crypto device settings"
- FUNC[6]="show_devices"
+ TEXT[4]="Display current Ethernet/Baseband/Crypto device settings"
+ FUNC[4]="show_devices"
- TEXT[7]="Bind Ethernet/Baseband/Crypto device to IGB UIO module"
- FUNC[7]="bind_devices_to_igb_uio"
+ TEXT[5]="Bind Ethernet/Baseband/Crypto device to IGB UIO module"
+ FUNC[5]="bind_devices_to_igb_uio"
- TEXT[8]="Bind Ethernet/Baseband/Crypto device to VFIO module"
- FUNC[8]="bind_devices_to_vfio"
+ TEXT[6]="Bind Ethernet/Baseband/Crypto device to VFIO module"
+ FUNC[6]="bind_devices_to_vfio"
- TEXT[9]="Setup VFIO permissions"
- FUNC[9]="set_vfio_permissions"
+ TEXT[7]="Setup VFIO permissions"
+ FUNC[7]="set_vfio_permissions"
}
#
--
2.26.2
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/6] usertools/setup: remove inserting custom kernel modules
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 2/6] usertools/setup: remove inserting custom kernel modules Ferruh Yigit
@ 2020-11-26 14:49 ` Walsh, Conor
0 siblings, 0 replies; 18+ messages in thread
From: Walsh, Conor @ 2020-11-26 14:49 UTC (permalink / raw)
To: Yigit, Ferruh, Thomas Monjalon
Cc: dev, techboard, Stephen Hemminger, Richardson, Bruce
Hi Ferruh,
Tested V2 patch, the docs also build successfully.
Thanks,
Conor.
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> Sent: Thursday 26 November 2020 14:18
> To: Thomas Monjalon <thomas@monjalon.net>
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; dev@dpdk.org;
> techboard@dpdk.org; Stephen Hemminger
> <stephen@networkplumber.org>; Richardson, Bruce
> <bruce.richardson@intel.com>; Walsh, Conor <conor.walsh@intel.com>
> Subject: [PATCH v2 2/6] usertools/setup: remove inserting custom kernel
> modules
>
> Custom DPDK kernel module insert support relies on make based build
> variable 'RTE_TARGET' to find the location of the kernel modules, which
> is not valid anymore.
>
> Also 'igb_uio' kernel module moved to another git repository:
> https://git.dpdk.org/dpdk-kmods/
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Conor Walsh <conor.walsh@intel.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [dpdk-dev] [PATCH v2 3/6] usertools/setup: remove running built applications
2020-11-26 14:18 [dpdk-dev] [PATCH v2 0/6] update dpdk-setup.sh Ferruh Yigit
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 1/6] usertools/setup: remove make based build Ferruh Yigit
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 2/6] usertools/setup: remove inserting custom kernel modules Ferruh Yigit
@ 2020-11-26 14:18 ` Ferruh Yigit
2020-11-26 14:55 ` Walsh, Conor
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 4/6] usertools/setup: remove hugepage functions Ferruh Yigit
` (3 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Ferruh Yigit @ 2020-11-26 14:18 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Ferruh Yigit, dev, techboard, Stephen Hemminger,
Bruce Richardson, conor.walsh
Running application relies on make based build variable 'RTE_TARGET' to
find the location of the applications, which is not valid anymore.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
doc/guides/linux_gsg/quick_start.rst | 42 +++++++---------------
usertools/dpdk-setup.sh | 52 ++--------------------------
2 files changed, 14 insertions(+), 80 deletions(-)
diff --git a/doc/guides/linux_gsg/quick_start.rst b/doc/guides/linux_gsg/quick_start.rst
index 14c4c7763aed..f46c50d04b65 100644
--- a/doc/guides/linux_gsg/quick_start.rst
+++ b/doc/guides/linux_gsg/quick_start.rst
@@ -20,8 +20,6 @@ The dpdk-setup.sh script, found in the usertools subdirectory, allows the user t
* Set up permissions for using VFIO as a non-privileged user
-* Run the test and testpmd applications
-
* Look at hugepages in the meminfo
* List hugepages in ``/mnt/huge``
@@ -41,17 +39,11 @@ The user configures the Linux* environment to support the running of DPDK applic
Hugepages can be set up for NUMA or non-NUMA systems. Any existing hugepages will be removed.
Network ports may be bound to DPDK kernel module for DPDK application use.
-**Step 2: Run an Application**
-
-The user may run the test application once the other steps have been performed.
-The test application allows the user to run a series of functional tests for the DPDK.
-The testpmd application, which supports the receiving and sending of packets, can also be run.
-
-**Step 3: Examining the System**
+**Step 2: Examining the System**
This step provides some tools for examining the status of hugepage mappings.
-**Step 4: System Cleanup**
+**Step 3: System Cleanup**
The final step has options for restoring the system to its original state.
@@ -96,39 +88,29 @@ Some options in the script prompt the user for further data before proceeding.
------------------------------------------------------------------------
- Step 2: Run test application for linux environment
-
- ------------------------------------------------------------------------
-
- [8] Run test application ($RTE_TARGET/app/test)
-
- [9] Run testpmd application in interactive mode ($RTE_TARGET/app/testpmd)
-
- ------------------------------------------------------------------------
-
- Step 3: Other tools
+ Step 2: Other tools
------------------------------------------------------------------------
- [10] List hugepage info from /proc/meminfo
+ [8] List hugepage info from /proc/meminfo
------------------------------------------------------------------------
- Step 4: Uninstall and system cleanup
+ Step 3: Uninstall and system cleanup
------------------------------------------------------------------------
- [11] Unbind NICs from IGB UIO driver
+ [9] Unbind NICs from IGB UIO driver
- [12] Remove IGB UIO module
+ [10] Remove IGB UIO module
- [13] Remove VFIO module
+ [11] Remove VFIO module
- [14] Remove KNI module
+ [12] Remove KNI module
- [15] Remove hugepage mappings
+ [13] Remove hugepage mappings
- [16] Exit Script
+ [14] Exit Script
Option:
@@ -136,7 +118,7 @@ The following selection demonstrates the starting of the DPDK UIO driver.
.. code-block:: console
- Option: 12
+ Option: 10
Unloading any existing DPDK UIO module
Loading DPDK UIO module
diff --git a/usertools/dpdk-setup.sh b/usertools/dpdk-setup.sh
index bcf0c843678f..759f6c096536 100755
--- a/usertools/dpdk-setup.sh
+++ b/usertools/dpdk-setup.sh
@@ -17,11 +17,6 @@ echo "--------------------------------------------------------------------------
HUGEPGSZ=`cat /proc/meminfo | grep Hugepagesize | cut -d : -f 2 | tr -d ' '`
-#
-# Application EAL parameters for setting memory options (amount/channels/ranks).
-#
-EAL_PARAMS='-n 4'
-
#
# Sets QUIT variable so script will finish.
#
@@ -252,34 +247,6 @@ set_numa_pages()
create_mnt_huge
}
-#
-# Run unit test application.
-#
-run_test_app()
-{
- echo ""
- echo " Enter hex bitmask of cores to execute test app on"
- echo " Example: to execute app on cores 0 to 7, enter 0xff"
- echo -n "bitmask: "
- read Bitmask
- echo "Launching app"
- sudo ${RTE_TARGET}/app/test -c $Bitmask $EAL_PARAMS
-}
-
-#
-# Run unit testpmd application.
-#
-run_testpmd_app()
-{
- echo ""
- echo " Enter hex bitmask of cores to execute testpmd app on"
- echo " Example: to execute app on cores 0 to 7, enter 0xff"
- echo -n "bitmask: "
- read Bitmask
- echo "Launching app"
- sudo ${RTE_TARGET}/app/testpmd -c $Bitmask $EAL_PARAMS -- -i
-}
-
#
# Print hugepage information.
#
@@ -381,24 +348,10 @@ step1_func()
FUNC[7]="set_vfio_permissions"
}
-#
-# Options for running applications.
-#
-step2_func()
-{
- TITLE="Run test application for linux environment"
-
- TEXT[1]="Run test application (\$RTE_TARGET/app/test)"
- FUNC[1]="run_test_app"
-
- TEXT[2]="Run testpmd application in interactive mode (\$RTE_TARGET/app/testpmd)"
- FUNC[2]="run_testpmd_app"
-}
-
#
# Other options
#
-step3_func()
+step2_func()
{
TITLE="Other tools"
@@ -410,7 +363,7 @@ step3_func()
#
# Options for cleaning up the system
#
-step4_func()
+step3_func()
{
TITLE="Uninstall and system cleanup"
@@ -433,7 +386,6 @@ step4_func()
STEPS[1]="step1_func"
STEPS[2]="step2_func"
STEPS[3]="step3_func"
-STEPS[4]="step4_func"
QUIT=0
--
2.26.2
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [dpdk-dev] [PATCH v2 3/6] usertools/setup: remove running built applications
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 3/6] usertools/setup: remove running built applications Ferruh Yigit
@ 2020-11-26 14:55 ` Walsh, Conor
0 siblings, 0 replies; 18+ messages in thread
From: Walsh, Conor @ 2020-11-26 14:55 UTC (permalink / raw)
To: Yigit, Ferruh, Thomas Monjalon
Cc: dev, techboard, Stephen Hemminger, Richardson, Bruce
Hi Ferruh,
Tested V2 patch, the docs also build successfully.
Thanks,
Conor.
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> Sent: Thursday 26 November 2020 14:18
> To: Thomas Monjalon <thomas@monjalon.net>
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; dev@dpdk.org;
> techboard@dpdk.org; Stephen Hemminger
> <stephen@networkplumber.org>; Richardson, Bruce
> <bruce.richardson@intel.com>; Walsh, Conor <conor.walsh@intel.com>
> Subject: [PATCH v2 3/6] usertools/setup: remove running built applications
>
> Running application relies on make based build variable 'RTE_TARGET' to
> find the location of the applications, which is not valid anymore.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Conor Walsh <conor.walsh@intel.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [dpdk-dev] [PATCH v2 4/6] usertools/setup: remove hugepage functions
2020-11-26 14:18 [dpdk-dev] [PATCH v2 0/6] update dpdk-setup.sh Ferruh Yigit
` (2 preceding siblings ...)
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 3/6] usertools/setup: remove running built applications Ferruh Yigit
@ 2020-11-26 14:18 ` Ferruh Yigit
2020-11-26 15:01 ` Walsh, Conor
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 5/6] usertools/setup: fix loading vfio module Ferruh Yigit
` (2 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Ferruh Yigit @ 2020-11-26 14:18 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Ferruh Yigit, dev, techboard, Stephen Hemminger,
Bruce Richardson, conor.walsh
There is a specific tool to setup hugepages, with better support, no
need to have duplication.
The hugepage script is: './usertools/dpdk-hugepages.py'
Please try "./usertools/dpdk-hugepages.py -h" for more information about
the tool.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
doc/guides/faq/faq.rst | 4 +-
doc/guides/linux_gsg/quick_start.rst | 90 +++--------------
usertools/dpdk-setup.sh | 145 ++-------------------------
3 files changed, 25 insertions(+), 214 deletions(-)
diff --git a/doc/guides/faq/faq.rst b/doc/guides/faq/faq.rst
index ee8c1697b4ad..5bc2926fa5d7 100644
--- a/doc/guides/faq/faq.rst
+++ b/doc/guides/faq/faq.rst
@@ -22,8 +22,8 @@ When you stop and restart the test application, it looks to see if the pages are
If you look in the directory, you will see ``n`` number of 2M pages files. If you specified 1024, you will see 1024 page files.
These are then placed in memory segments to get contiguous memory.
-If you need to change the number of pages, it is easier to first remove the pages. The usertools/dpdk-setup.sh script provides an option to do this.
-See the "Quick Start Setup Script" section in the :ref:`DPDK Getting Started Guide <linux_gsg>` for more information.
+If you need to change the number of pages, it is easier to first remove the pages. The ./usertools/dpdk-hugepages.py script supports to do this.
+See the :doc:`../tools/hugepages` for more information.
If I execute "l2fwd -l 0-3 -m 64 -n 3 -- -p 3", I get the following output, indicating that there are no socket 0 hugepages to allocate the mbuf and ring structures to?
diff --git a/doc/guides/linux_gsg/quick_start.rst b/doc/guides/linux_gsg/quick_start.rst
index f46c50d04b65..630def36a173 100644
--- a/doc/guides/linux_gsg/quick_start.rst
+++ b/doc/guides/linux_gsg/quick_start.rst
@@ -14,18 +14,14 @@ The dpdk-setup.sh script, found in the usertools subdirectory, allows the user t
* Remove the DPDK KNI kernel module
-* Create and delete hugepages for NUMA and non-NUMA cases
-
* View network port status and reserve ports for DPDK application use
* Set up permissions for using VFIO as a non-privileged user
-* Look at hugepages in the meminfo
-
-* List hugepages in ``/mnt/huge``
-
Please refer to :doc:`../prog_guide/build-sdk-meson` for building DPDK.
+Please refer to :doc:`../tools/hugepages` for setting up hugepages for DPDK.
+
Script Organization
-------------------
@@ -36,14 +32,9 @@ The following is a brief synopsis of each step.
**Step 1: Setup Environment**
The user configures the Linux* environment to support the running of DPDK applications.
-Hugepages can be set up for NUMA or non-NUMA systems. Any existing hugepages will be removed.
Network ports may be bound to DPDK kernel module for DPDK application use.
-**Step 2: Examining the System**
-
-This step provides some tools for examining the status of hugepage mappings.
-
-**Step 3: System Cleanup**
+**Step 2: System Cleanup**
The final step has options for restoring the system to its original state.
@@ -74,43 +65,29 @@ Some options in the script prompt the user for further data before proceeding.
[1] Insert VFIO module
- [2] Setup hugepage mappings for non-NUMA systems
-
- [3] Setup hugepage mappings for NUMA systems
-
- [4] Display current Ethernet device settings
-
- [5] Bind Ethernet device to IGB UIO module
-
- [6] Bind Ethernet device to VFIO module
-
- [7] Setup VFIO permissions
-
- ------------------------------------------------------------------------
+ [2] Display current Ethernet device settings
- Step 2: Other tools
+ [3] Bind Ethernet device to IGB UIO module
- ------------------------------------------------------------------------
+ [4] Bind Ethernet device to VFIO module
- [8] List hugepage info from /proc/meminfo
+ [5] Setup VFIO permissions
------------------------------------------------------------------------
- Step 3: Uninstall and system cleanup
+ Step 2: Uninstall and system cleanup
------------------------------------------------------------------------
- [9] Unbind NICs from IGB UIO driver
-
- [10] Remove IGB UIO module
+ [6] Unbind NICs from IGB UIO driver
- [11] Remove VFIO module
+ [7] Remove IGB UIO module
- [12] Remove KNI module
+ [8] Remove VFIO module
- [13] Remove hugepage mappings
+ [9] Remove KNI module
- [14] Exit Script
+ [10] Exit Script
Option:
@@ -118,46 +95,7 @@ The following selection demonstrates the starting of the DPDK UIO driver.
.. code-block:: console
- Option: 10
+ Option: 7
Unloading any existing DPDK UIO module
Loading DPDK UIO module
-
-The following selection demonstrates the creation of hugepages in a NUMA system.
-1024 2 MByte pages are assigned to each node.
-The result is that the application should use -m 4096 for starting the application to access both memory areas
-(this is done automatically if the -m option is not provided).
-
-.. note::
-
- If prompts are displayed to remove temporary files, type 'y'.
-
-.. code-block:: console
-
- Option: 3
-
- Removing currently reserved hugepages
- mounting /mnt/huge and removing directory
- Input the number of 2MB pages for each node
- Example: to have 128MB of hugepages available per node,
- enter '64' to reserve 64 * 2MB pages on each node
- Number of pages for node0: 1024
- Number of pages for node1: 1024
- Reserving hugepages
- Creating /mnt/huge and mounting as hugetlbfs
-
-The following selection demonstrates the launch of the test application to run on a single core.
-
-.. code-block:: console
-
- Option: 8
-
- Enter hex bitmask of cores to execute test app on
- Example: to execute app on cores 0 to 7, enter 0xff
- bitmask: 0x01
- Launching app
- EAL: coremask set to 1
- EAL: Detected lcore 0 on socket 0
- ...
- EAL: Main core 0 is ready (tid=1b2ad720)
- RTE>>
diff --git a/usertools/dpdk-setup.sh b/usertools/dpdk-setup.sh
index 759f6c096536..1e36661e572e 100755
--- a/usertools/dpdk-setup.sh
+++ b/usertools/dpdk-setup.sh
@@ -15,8 +15,6 @@ echo "--------------------------------------------------------------------------
echo " RTE_SDK exported as $RTE_SDK"
echo "------------------------------------------------------------------------------"
-HUGEPGSZ=`cat /proc/meminfo | grep Hugepagesize | cut -d : -f 2 | tr -d ' '`
-
#
# Sets QUIT variable so script will finish.
#
@@ -31,36 +29,6 @@ q()
quit
}
-#
-# Creates hugepage filesystem.
-#
-create_mnt_huge()
-{
- echo "Creating /mnt/huge and mounting as hugetlbfs"
- sudo mkdir -p /mnt/huge
-
- grep -s '/mnt/huge' /proc/mounts > /dev/null
- if [ $? -ne 0 ] ; then
- sudo mount -t hugetlbfs nodev /mnt/huge
- fi
-}
-
-#
-# Removes hugepage filesystem.
-#
-remove_mnt_huge()
-{
- echo "Unmounting /mnt/huge and removing directory"
- grep -s '/mnt/huge' /proc/mounts > /dev/null
- if [ $? -eq 0 ] ; then
- sudo umount /mnt/huge
- fi
-
- if [ -d /mnt/huge ] ; then
- sudo rm -R /mnt/huge
- fi
-}
-
#
# Unloads igb_uio.ko.
#
@@ -182,79 +150,6 @@ set_vfio_permissions()
fi
}
-#
-# Removes all reserved hugepages.
-#
-clear_huge_pages()
-{
- echo > .echo_tmp
- for d in /sys/devices/system/node/node? ; do
- echo "echo 0 > $d/hugepages/hugepages-${HUGEPGSZ}/nr_hugepages" >> .echo_tmp
- done
- echo "Removing currently reserved hugepages"
- sudo sh .echo_tmp
- rm -f .echo_tmp
-
- remove_mnt_huge
-}
-
-#
-# Creates hugepages.
-#
-set_non_numa_pages()
-{
- clear_huge_pages
-
- echo ""
- echo " Input the number of ${HUGEPGSZ} hugepages"
- echo " Example: to have 128MB of hugepages available in a 2MB huge page system,"
- echo " enter '64' to reserve 64 * 2MB pages"
- echo -n "Number of pages: "
- read Pages
-
- echo "echo $Pages > /sys/kernel/mm/hugepages/hugepages-${HUGEPGSZ}/nr_hugepages" > .echo_tmp
-
- echo "Reserving hugepages"
- sudo sh .echo_tmp
- rm -f .echo_tmp
-
- create_mnt_huge
-}
-
-#
-# Creates hugepages on specific NUMA nodes.
-#
-set_numa_pages()
-{
- clear_huge_pages
-
- echo ""
- echo " Input the number of ${HUGEPGSZ} hugepages for each node"
- echo " Example: to have 128MB of hugepages available per node in a 2MB huge page system,"
- echo " enter '64' to reserve 64 * 2MB pages on each node"
-
- echo > .echo_tmp
- for d in /sys/devices/system/node/node? ; do
- node=$(basename $d)
- echo -n "Number of pages for $node: "
- read Pages
- echo "echo $Pages > $d/hugepages/hugepages-${HUGEPGSZ}/nr_hugepages" >> .echo_tmp
- done
- echo "Reserving hugepages"
- sudo sh .echo_tmp
- rm -f .echo_tmp
-
- create_mnt_huge
-}
-
-#
-# Print hugepage information.
-#
-grep_meminfo()
-{
- grep -i huge /proc/meminfo
-}
-
#
# Calls dpdk-devbind.py --status to show the devices and what they
# are all bound to, in terms of drivers.
@@ -329,41 +224,23 @@ step1_func()
TEXT[1]="Insert VFIO module"
FUNC[1]="load_vfio_module"
- TEXT[2]="Setup hugepage mappings for non-NUMA systems"
- FUNC[2]="set_non_numa_pages"
-
- TEXT[3]="Setup hugepage mappings for NUMA systems"
- FUNC[3]="set_numa_pages"
+ TEXT[2]="Display current Ethernet/Baseband/Crypto device settings"
+ FUNC[2]="show_devices"
- TEXT[4]="Display current Ethernet/Baseband/Crypto device settings"
- FUNC[4]="show_devices"
+ TEXT[3]="Bind Ethernet/Baseband/Crypto device to IGB UIO module"
+ FUNC[3]="bind_devices_to_igb_uio"
- TEXT[5]="Bind Ethernet/Baseband/Crypto device to IGB UIO module"
- FUNC[5]="bind_devices_to_igb_uio"
-
- TEXT[6]="Bind Ethernet/Baseband/Crypto device to VFIO module"
- FUNC[6]="bind_devices_to_vfio"
-
- TEXT[7]="Setup VFIO permissions"
- FUNC[7]="set_vfio_permissions"
-}
-
-#
-# Other options
-#
-step2_func()
-{
- TITLE="Other tools"
-
- TEXT[1]="List hugepage info from /proc/meminfo"
- FUNC[1]="grep_meminfo"
+ TEXT[4]="Bind Ethernet/Baseband/Crypto device to VFIO module"
+ FUNC[4]="bind_devices_to_vfio"
+ TEXT[5]="Setup VFIO permissions"
+ FUNC[5]="set_vfio_permissions"
}
#
# Options for cleaning up the system
#
-step3_func()
+step2_func()
{
TITLE="Uninstall and system cleanup"
@@ -378,14 +255,10 @@ step3_func()
TEXT[4]="Remove KNI module"
FUNC[4]="remove_kni_module"
-
- TEXT[5]="Remove hugepage mappings"
- FUNC[5]="clear_huge_pages"
}
STEPS[1]="step1_func"
STEPS[2]="step2_func"
-STEPS[3]="step3_func"
QUIT=0
--
2.26.2
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [dpdk-dev] [PATCH v2 4/6] usertools/setup: remove hugepage functions
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 4/6] usertools/setup: remove hugepage functions Ferruh Yigit
@ 2020-11-26 15:01 ` Walsh, Conor
0 siblings, 0 replies; 18+ messages in thread
From: Walsh, Conor @ 2020-11-26 15:01 UTC (permalink / raw)
To: Yigit, Ferruh, Thomas Monjalon
Cc: dev, techboard, Stephen Hemminger, Richardson, Bruce
Hi Ferruh,
Tested V2 patch, the docs also build successfully.
Thanks,
Conor.
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> Sent: Thursday 26 November 2020 14:19
> To: Thomas Monjalon <thomas@monjalon.net>
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; dev@dpdk.org;
> techboard@dpdk.org; Stephen Hemminger
> <stephen@networkplumber.org>; Richardson, Bruce
> <bruce.richardson@intel.com>; Walsh, Conor <conor.walsh@intel.com>
> Subject: [PATCH v2 4/6] usertools/setup: remove hugepage functions
>
> There is a specific tool to setup hugepages, with better support, no
> need to have duplication.
>
> The hugepage script is: './usertools/dpdk-hugepages.py'
>
> Please try "./usertools/dpdk-hugepages.py -h" for more information about
> the tool.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Conor Walsh <conor.walsh@intel.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [dpdk-dev] [PATCH v2 5/6] usertools/setup: fix loading vfio module
2020-11-26 14:18 [dpdk-dev] [PATCH v2 0/6] update dpdk-setup.sh Ferruh Yigit
` (3 preceding siblings ...)
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 4/6] usertools/setup: remove hugepage functions Ferruh Yigit
@ 2020-11-26 14:18 ` Ferruh Yigit
2020-11-26 15:05 ` Walsh, Conor
2020-11-26 18:31 ` David Marchand
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 6/6] usertools/setup: move removal target to 21.11 Ferruh Yigit
2020-11-26 16:30 ` [dpdk-dev] [PATCH v2 0/6] update dpdk-setup.sh David Marchand
6 siblings, 2 replies; 18+ messages in thread
From: Ferruh Yigit @ 2020-11-26 14:18 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Ferruh Yigit, dev, techboard, Stephen Hemminger,
Bruce Richardson, conor.walsh
script is checking the existing of the kernel module file, but in some
distros kernel modules are stored compressed, like as 'vfio-pci.ko.xz'.
Add wildcard to cover both compressed and not compressed cases.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
usertools/dpdk-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/usertools/dpdk-setup.sh b/usertools/dpdk-setup.sh
index 1e36661e572e..e8667e094a53 100755
--- a/usertools/dpdk-setup.sh
+++ b/usertools/dpdk-setup.sh
@@ -62,7 +62,7 @@ load_vfio_module()
{
remove_vfio_module
- VFIO_PATH="kernel/drivers/vfio/pci/vfio-pci.ko"
+ VFIO_PATH="kernel/drivers/vfio/pci/vfio-pci.ko*"
echo "Loading VFIO module"
/sbin/lsmod | grep -s vfio_pci > /dev/null
--
2.26.2
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [dpdk-dev] [PATCH v2 5/6] usertools/setup: fix loading vfio module
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 5/6] usertools/setup: fix loading vfio module Ferruh Yigit
@ 2020-11-26 15:05 ` Walsh, Conor
2020-11-26 18:31 ` David Marchand
1 sibling, 0 replies; 18+ messages in thread
From: Walsh, Conor @ 2020-11-26 15:05 UTC (permalink / raw)
To: Yigit, Ferruh, Thomas Monjalon
Cc: dev, techboard, Stephen Hemminger, Richardson, Bruce
Hi Ferruh,
I tested this patch on Ubuntu 20.04 (5.4.0-53-generic) and
Centos 8.2 (4.18.0-193.28.1.el8_2.x86_64), load VFIO worked on both systems.
I'm not sure if this is a problem that effects either of these distros though.
Thanks,
Conor.
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> Sent: Thursday 26 November 2020 14:19
> To: Thomas Monjalon <thomas@monjalon.net>
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; dev@dpdk.org;
> techboard@dpdk.org; Stephen Hemminger
> <stephen@networkplumber.org>; Richardson, Bruce
> <bruce.richardson@intel.com>; Walsh, Conor <conor.walsh@intel.com>
> Subject: [PATCH v2 5/6] usertools/setup: fix loading vfio module
>
> script is checking the existing of the kernel module file, but in some
> distros kernel modules are stored compressed, like as 'vfio-pci.ko.xz'.
>
> Add wildcard to cover both compressed and not compressed cases.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Conor Walsh <conor.walsh@intel.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [dpdk-dev] [PATCH v2 5/6] usertools/setup: fix loading vfio module
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 5/6] usertools/setup: fix loading vfio module Ferruh Yigit
2020-11-26 15:05 ` Walsh, Conor
@ 2020-11-26 18:31 ` David Marchand
2020-11-27 9:55 ` Ferruh Yigit
1 sibling, 1 reply; 18+ messages in thread
From: David Marchand @ 2020-11-26 18:31 UTC (permalink / raw)
To: Ferruh Yigit
Cc: Thomas Monjalon, dev, techboard, Stephen Hemminger,
Bruce Richardson, Conor Walsh
On Thu, Nov 26, 2020 at 3:20 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>
> script is checking the existing of the kernel module file, but in some
> distros kernel modules are stored compressed, like as 'vfio-pci.ko.xz'.
Since this script expects modprobe to be installed (coming with kmod
tools), it means modinfo is available.
Checking for module availability should be "modinfo vfio-pci".
--
David Marchand
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [dpdk-dev] [PATCH v2 5/6] usertools/setup: fix loading vfio module
2020-11-26 18:31 ` David Marchand
@ 2020-11-27 9:55 ` Ferruh Yigit
2020-11-27 13:56 ` Thomas Monjalon
0 siblings, 1 reply; 18+ messages in thread
From: Ferruh Yigit @ 2020-11-27 9:55 UTC (permalink / raw)
To: David Marchand, Bruce Richardson, Anatoly Burakov, David Hunt,
Pablo de Lara, Stephen Hemminger
Cc: Thomas Monjalon, dev, techboard, Conor Walsh, John McNamara
On 11/26/2020 6:31 PM, David Marchand wrote:
> On Thu, Nov 26, 2020 at 3:20 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>>
>> script is checking the existing of the kernel module file, but in some
>> distros kernel modules are stored compressed, like as 'vfio-pci.ko.xz'.
>
> Since this script expects modprobe to be installed (coming with kmod
> tools), it means modinfo is available.
> Checking for module availability should be "modinfo vfio-pci".
>
+1, that is definitely better.
I can send a new version with it if we decide to keep the script.
Mainly we are tying to decide to remove the script or keep with the changes in
this set.
There aren't still much comment on it, only comment by you in favor of removal,
I haven't seen any comment to keep the script.
Added more folks for comment, also techboard comments are welcome.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [dpdk-dev] [PATCH v2 5/6] usertools/setup: fix loading vfio module
2020-11-27 9:55 ` Ferruh Yigit
@ 2020-11-27 13:56 ` Thomas Monjalon
2020-11-27 15:29 ` Ferruh Yigit
0 siblings, 1 reply; 18+ messages in thread
From: Thomas Monjalon @ 2020-11-27 13:56 UTC (permalink / raw)
To: techboard, Ferruh Yigit
Cc: David Marchand, Bruce Richardson, Anatoly Burakov, David Hunt,
Pablo de Lara, Stephen Hemminger, dev, Conor Walsh,
John McNamara, andrew.rybchenko
27/11/2020 10:55, Ferruh Yigit:
> On 11/26/2020 6:31 PM, David Marchand wrote:
> > On Thu, Nov 26, 2020 at 3:20 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> >>
> >> script is checking the existing of the kernel module file, but in some
> >> distros kernel modules are stored compressed, like as 'vfio-pci.ko.xz'.
> >
> > Since this script expects modprobe to be installed (coming with kmod
> > tools), it means modinfo is available.
> > Checking for module availability should be "modinfo vfio-pci".
> >
>
> +1, that is definitely better.
>
> I can send a new version with it if we decide to keep the script.
It is too late to improve this old script.
We should let it die and rest in peace.
> Mainly we are tying to decide to remove the script or keep with the changes in
> this set.
I appreciate your effort Ferruh.
It shows that almost nothing is worth to keep in this script.
> There aren't still much comment on it, only comment by you in favor of removal,
> I haven't seen any comment to keep the script.
>
> Added more folks for comment, also techboard comments are welcome.
My opinion is that we should follow the deprecation notice
and remove the script in 20.11.
If someone wants to keep the same VFIO manipulations,
it is possible to copy/paste from old versions.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [dpdk-dev] [PATCH v2 5/6] usertools/setup: fix loading vfio module
2020-11-27 13:56 ` Thomas Monjalon
@ 2020-11-27 15:29 ` Ferruh Yigit
0 siblings, 0 replies; 18+ messages in thread
From: Ferruh Yigit @ 2020-11-27 15:29 UTC (permalink / raw)
To: Thomas Monjalon, techboard
Cc: David Marchand, Bruce Richardson, Anatoly Burakov, David Hunt,
Pablo de Lara, Stephen Hemminger, dev, Conor Walsh,
John McNamara, andrew.rybchenko
On 11/27/2020 1:56 PM, Thomas Monjalon wrote:
> 27/11/2020 10:55, Ferruh Yigit:
>> On 11/26/2020 6:31 PM, David Marchand wrote:
>>> On Thu, Nov 26, 2020 at 3:20 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>>>>
>>>> script is checking the existing of the kernel module file, but in some
>>>> distros kernel modules are stored compressed, like as 'vfio-pci.ko.xz'.
>>>
>>> Since this script expects modprobe to be installed (coming with kmod
>>> tools), it means modinfo is available.
>>> Checking for module availability should be "modinfo vfio-pci".
>>>
>>
>> +1, that is definitely better.
>>
>> I can send a new version with it if we decide to keep the script.
>
> It is too late to improve this old script.
> We should let it die and rest in peace.
>
>> Mainly we are tying to decide to remove the script or keep with the changes in
>> this set.
>
> I appreciate your effort Ferruh.
> It shows that almost nothing is worth to keep in this script.
>
>> There aren't still much comment on it, only comment by you in favor of removal,
>> I haven't seen any comment to keep the script.
>>
>> Added more folks for comment, also techboard comments are welcome.
>
> My opinion is that we should follow the deprecation notice
> and remove the script in 20.11.
> If someone wants to keep the same VFIO manipulations,
> it is possible to copy/paste from old versions.
>
>
OK, there is already a patch to remove it, updating this series as rejected.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [dpdk-dev] [PATCH v2 6/6] usertools/setup: move removal target to 21.11
2020-11-26 14:18 [dpdk-dev] [PATCH v2 0/6] update dpdk-setup.sh Ferruh Yigit
` (4 preceding siblings ...)
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 5/6] usertools/setup: fix loading vfio module Ferruh Yigit
@ 2020-11-26 14:18 ` Ferruh Yigit
2020-11-26 15:13 ` Walsh, Conor
2020-11-26 16:30 ` [dpdk-dev] [PATCH v2 0/6] update dpdk-setup.sh David Marchand
6 siblings, 1 reply; 18+ messages in thread
From: Ferruh Yigit @ 2020-11-26 14:18 UTC (permalink / raw)
To: Thomas Monjalon, Ray Kinsella, Neil Horman
Cc: Ferruh Yigit, dev, techboard, Stephen Hemminger,
Bruce Richardson, conor.walsh
There are still some functions in the script that not replaced
completely, give more time to complete removal of the tool.
A warning added to script documentation about the removal plan.
Current functionality supported by the script is:
----------------------------------------------------------
Step 1: Setup linux environment
----------------------------------------------------------
[1] Insert VFIO module
[2] Display current Ethernet/Baseband/Crypto device settings
[3] Bind Ethernet/Baseband/Crypto device to IGB UIO module
[4] Bind Ethernet/Baseband/Crypto device to VFIO module
[5] Setup VFIO permissions
----------------------------------------------------------
Step 2: Uninstall and system cleanup
----------------------------------------------------------
[6] Unbind devices from IGB UIO or VFIO driver
[7] Remove IGB UIO module
[8] Remove VFIO module
[9] Remove KNI module
[10] Exit Script
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
doc/guides/linux_gsg/quick_start.rst | 4 ++++
doc/guides/rel_notes/deprecation.rst | 2 +-
usertools/dpdk-setup.sh | 2 +-
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/doc/guides/linux_gsg/quick_start.rst b/doc/guides/linux_gsg/quick_start.rst
index 630def36a173..ba2decd4b1b5 100644
--- a/doc/guides/linux_gsg/quick_start.rst
+++ b/doc/guides/linux_gsg/quick_start.rst
@@ -6,6 +6,10 @@
Quick Start Setup Script
========================
+.. warning::
+
+ The dpdk-setup.sh script is deprecated and will be removed in v21.11 release.
+
The dpdk-setup.sh script, found in the usertools subdirectory, allows the user to perform the following tasks:
* Insert and remove VFIO kernel modules
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 96986fabd598..6ad3dafe1bd3 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -103,5 +103,5 @@ Deprecation Notices
* dpdk-setup.sh: This old script relies on deprecated stuff, and especially
``make``. Given environments are too much variables for such a simple script,
- it will be removed in DPDK 20.11.
+ it will be removed in DPDK 21.11.
Some useful parts may be converted into specific scripts.
diff --git a/usertools/dpdk-setup.sh b/usertools/dpdk-setup.sh
index e8667e094a53..9f24e28c03fd 100755
--- a/usertools/dpdk-setup.sh
+++ b/usertools/dpdk-setup.sh
@@ -289,7 +289,7 @@ while [ "$QUIT" == "0" ]; do
OPTIONS[$OPTION_NUM]="quit"
echo ""
echo '--------------------------------------------------'
- echo 'WARNING: This tool will be removed from DPDK 20.11'
+ echo 'WARNING: This tool will be removed from DPDK 21.11'
echo '--------------------------------------------------'
echo
echo -n "Option: "
--
2.26.2
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [dpdk-dev] [PATCH v2 6/6] usertools/setup: move removal target to 21.11
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 6/6] usertools/setup: move removal target to 21.11 Ferruh Yigit
@ 2020-11-26 15:13 ` Walsh, Conor
0 siblings, 0 replies; 18+ messages in thread
From: Walsh, Conor @ 2020-11-26 15:13 UTC (permalink / raw)
To: Yigit, Ferruh, Thomas Monjalon, Ray Kinsella, Neil Horman
Cc: dev, techboard, Stephen Hemminger, Richardson, Bruce
Hi Ferruh,
Tested V2 patch, the docs also build successfully.
Thanks,
Conor.
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> Sent: Thursday 26 November 2020 14:19
> To: Thomas Monjalon <thomas@monjalon.net>; Ray Kinsella
> <mdr@ashroe.eu>; Neil Horman <nhorman@tuxdriver.com>
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; dev@dpdk.org;
> techboard@dpdk.org; Stephen Hemminger
> <stephen@networkplumber.org>; Richardson, Bruce
> <bruce.richardson@intel.com>; Walsh, Conor <conor.walsh@intel.com>
> Subject: [PATCH v2 6/6] usertools/setup: move removal target to 21.11
>
> There are still some functions in the script that not replaced
> completely, give more time to complete removal of the tool.
>
> A warning added to script documentation about the removal plan.
>
> Current functionality supported by the script is:
> ----------------------------------------------------------
> Step 1: Setup linux environment
> ----------------------------------------------------------
> [1] Insert VFIO module
> [2] Display current Ethernet/Baseband/Crypto device settings
> [3] Bind Ethernet/Baseband/Crypto device to IGB UIO module
> [4] Bind Ethernet/Baseband/Crypto device to VFIO module
> [5] Setup VFIO permissions
>
> ----------------------------------------------------------
> Step 2: Uninstall and system cleanup
> ----------------------------------------------------------
> [6] Unbind devices from IGB UIO or VFIO driver
> [7] Remove IGB UIO module
> [8] Remove VFIO module
> [9] Remove KNI module
>
> [10] Exit Script
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Conor Walsh <conor.walsh@intel.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [dpdk-dev] [PATCH v2 0/6] update dpdk-setup.sh
2020-11-26 14:18 [dpdk-dev] [PATCH v2 0/6] update dpdk-setup.sh Ferruh Yigit
` (5 preceding siblings ...)
2020-11-26 14:18 ` [dpdk-dev] [PATCH v2 6/6] usertools/setup: move removal target to 21.11 Ferruh Yigit
@ 2020-11-26 16:30 ` David Marchand
6 siblings, 0 replies; 18+ messages in thread
From: David Marchand @ 2020-11-26 16:30 UTC (permalink / raw)
To: Ferruh Yigit
Cc: Thomas Monjalon, dev, techboard, Stephen Hemminger,
Bruce Richardson, Conor Walsh
On Thu, Nov 26, 2020 at 3:19 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>
> This is an effort to update the dpdk-setup.sh script and keep it one
> more year until whole functionality of it is replaced.
>
> Other option is to remove it completely, please comment.
I would simply remove this script.
Binding devices can be done with either driverctl (which is available
in most distributions) and dpdk-devbind.py (which a Howto already in
the doc).
As for permissions, what this script is doing is scary.
I would prefer users don't rely on this:
usertools/dpdk-setup.sh: sudo chmod a+x /dev/vfio
usertools/dpdk-setup.sh: sudo chmod 0666 /dev/vfio/*
OVS uses a udev rule for non root support:
https://github.com/openvswitch/ovs/blob/master/rhel/usr_lib_udev_rules.d_91-vfio.rules
We could describe this in the DPDK documentation.
--
David Marchand
^ permalink raw reply [flat|nested] 18+ messages in thread