[dpdk-dev,RFC,1/2] doc: add doc with steps to build PMD and run testpmd

Message ID 1491059040-20647-2-git-send-email-shijith.thotton@caviumnetworks.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Shijith Thotton April 1, 2017, 3:03 p.m. UTC
  Add a new document with steps to build PMDs and launch a sample test
application, "testpmd". It can be included in other PMD documentations
or be referred.

Suggested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
---
 doc/guides/nics/build_and_run.inc | 110 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 110 insertions(+)
 create mode 100644 doc/guides/nics/build_and_run.inc
  

Comments

John McNamara April 2, 2017, 12:11 p.m. UTC | #1
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Shijith Thotton
> Sent: Saturday, April 1, 2017 4:04 PM
> To: dev@dpdk.org
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>
> Subject: [dpdk-dev] [RFC 1/2] doc: add doc with steps to build PMD and run
> testpmd
> 
> Add a new document with steps to build PMDs and launch a sample test
> application, "testpmd". It can be included in other PMD documentations or
> be referred.

Good idea. Nice addition. Some minor comments below.

> 
> Suggested-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
> ---
>  doc/guides/nics/build_and_run.inc | 110

I think that this should be an rst doc that is included in the index
file for the nics dir. It should be included right after the overview
in the index.


> +.. _pmd_build_and_run:

If this doc is included in the index then it needs a better first section
title. Something like "Compiling and testing a PMD for a NIC".

Then it should have a short introduction like:

    This section demonstrates how to compile and run a Poll Mode Driver
    (PMD) for the available Network Interface Cards in DPDK using TestPMD.

    TestPMD is one of the reference applications distributed with the
    DPDK. Its main purpose is to forward packets between Ethernet
    ports on a network interface and as such is the best way to test
    a PMD.

It would be good to add a link to the TestPMD into docs but it doesn't have a 
target. We should probably add one (it maybe be possible to link to the RST
file but that syntax isn't generally preferred).



> +
> +Driver Compilation
> +------------------

This and the next sections should then become second level headings

> +
> +To compile PMD for Linux x86_64 gcc target, run the following "make"
> command:


s/PMD/a PMD/

Also add at the end of this line or after the command:

    This command will also automatically build testpmd.

> +
> +.. code-block:: console
> +
> +   cd <DPDK-source-directory>
> +   make install T=x86_64-native-linuxapp-gcc
> +
> +FreeBSD targets should use "gmake" command instead of "make".
> +
> +For more information, refer :ref:`Getting Started Guide for Linux
> +<linux_gsg>` or :ref:`Getting Started Guide for FreeBSD <freebsd_gsg>`
> depending on your platform.

s/refer/refer to the/


> +Running testpmd in Linux
> +------------------------
> +

> +This section demonstrates how to launch ``testpmd`` in Linux.

s/launch/setup and run/


> +#. Start ``testpmd`` with basic parameters:
> +
> +   .. code-block:: console
> +
> +      ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -- -i

We recently changed the docs to use "-l" instead of "-c". Can you make
that change here as well.


Thanks,

John
  
John McNamara April 2, 2017, 12:13 p.m. UTC | #2
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Mcnamara, John
> Sent: Sunday, April 2, 2017 1:11 PM
> To: Shijith Thotton <shijith.thotton@caviumnetworks.com>; dev@dpdk.org
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>
> Subject: Re: [dpdk-dev] [RFC 1/2] doc: add doc with steps to build PMD and
> run testpmd
> 
> 
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Shijith Thotton
> > Sent: Saturday, April 1, 2017 4:04 PM
> > To: dev@dpdk.org
> > Cc: Yigit, Ferruh <ferruh.yigit@intel.com>
> > Subject: [dpdk-dev] [RFC 1/2] doc: add doc with steps to build PMD and
> > run testpmd
> >
> > Add a new document with steps to build PMDs and launch a sample test
> > application, "testpmd". It can be included in other PMD documentations
> > or be referred.
> 
> Good idea. Nice addition. Some minor comments below.

P.S., See also this recent doc on TestPMD from Pablo for reference/ideas:

https://software.intel.com/en-us/articles/testing-dpdk-performance-and-features-with-testpmd


P.P.S. Pablo, we should convert that doc into a DPDK how-to or intro section for TestPMD.
  
Shijith Thotton April 3, 2017, 8:05 a.m. UTC | #3
On Sun, Apr 02, 2017 at 12:11:05PM +0000, Mcnamara, John wrote:
> 
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Shijith Thotton
> > Sent: Saturday, April 1, 2017 4:04 PM
> > To: dev@dpdk.org
> > Cc: Yigit, Ferruh <ferruh.yigit@intel.com>
> > Subject: [dpdk-dev] [RFC 1/2] doc: add doc with steps to build PMD and run
> > testpmd
> > 
> > Add a new document with steps to build PMDs and launch a sample test
> > application, "testpmd". It can be included in other PMD documentations or
> > be referred.
> 
> Good idea. Nice addition. Some minor comments below.
> 
> > 
> > Suggested-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
> > ---
> >  doc/guides/nics/build_and_run.inc | 110
> 
> I think that this should be an rst doc that is included in the index
> file for the nics dir. It should be included right after the overview
> in the index.
>

OK. Will add a section as mentioned below.
 
> 
> > +.. _pmd_build_and_run:
> 
> If this doc is included in the index then it needs a better first section
> title. Something like "Compiling and testing a PMD for a NIC".
> 
> Then it should have a short introduction like:
> 
>     This section demonstrates how to compile and run a Poll Mode Driver
>     (PMD) for the available Network Interface Cards in DPDK using TestPMD.
> 
>     TestPMD is one of the reference applications distributed with the
>     DPDK. Its main purpose is to forward packets between Ethernet
>     ports on a network interface and as such is the best way to test
>     a PMD.
> 
> It would be good to add a link to the TestPMD into docs but it doesn't have a 
> target. We should probably add one (it maybe be possible to link to the RST
> file but that syntax isn't generally preferred).
> 
> 
> 

Testpmd user guide can have a label "_testpmd_ug" and can be referenced
here.

> > +
> > +Driver Compilation
> > +------------------
> 
> This and the next sections should then become second level headings
> 
> > +
> > +To compile PMD for Linux x86_64 gcc target, run the following "make"
> > command:
> 
> 
> s/PMD/a PMD/
> 
> Also add at the end of this line or after the command:
> 
>     This command will also automatically build testpmd.
> 

OK.

> > +
> > +.. code-block:: console
> > +
> > +   cd <DPDK-source-directory>
> > +   make install T=x86_64-native-linuxapp-gcc
> > +
> > +FreeBSD targets should use "gmake" command instead of "make".
> > +
> > +For more information, refer :ref:`Getting Started Guide for Linux
> > +<linux_gsg>` or :ref:`Getting Started Guide for FreeBSD <freebsd_gsg>`
> > depending on your platform.
> 
> s/refer/refer to the/
> 
> 
> > +Running testpmd in Linux
> > +------------------------
> > +
> 
> > +This section demonstrates how to launch ``testpmd`` in Linux.
> 
> s/launch/setup and run/
> 
> 
> > +#. Start ``testpmd`` with basic parameters:
> > +
> > +   .. code-block:: console
> > +
> > +      ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -- -i
> 
> We recently changed the docs to use "-l" instead of "-c". Can you make
> that change here as well.
> 

Will use "-l".

> 
> Thanks,
> 
> John


Thanks,
Shijith
  

Patch

diff --git a/doc/guides/nics/build_and_run.inc b/doc/guides/nics/build_and_run.inc
new file mode 100644
index 0000000..7d59c6c
--- /dev/null
+++ b/doc/guides/nics/build_and_run.inc
@@ -0,0 +1,110 @@ 
+..  BSD LICENSE
+    Copyright(c) 2017 Cavium, Inc.. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Cavium, Inc. nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER(S) OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+.. _pmd_build_and_run:
+
+Driver Compilation
+------------------
+
+To compile PMD for Linux x86_64 gcc target, run the following "make" command:
+
+.. code-block:: console
+
+   cd <DPDK-source-directory>
+   make install T=x86_64-native-linuxapp-gcc
+
+FreeBSD targets should use "gmake" command instead of "make".
+
+For more information, refer :ref:`Getting Started Guide for Linux <linux_gsg>` or
+:ref:`Getting Started Guide for FreeBSD <freebsd_gsg>` depending on your platform.
+
+
+
+Running testpmd in Linux
+------------------------
+
+This section demonstrates how to launch ``testpmd`` in Linux.
+
+#. Mount huge pages:
+
+   .. code-block:: console
+
+      mkdir /mnt/huge
+      mount -t hugetlbfs nodev /mnt/huge
+
+#. Request huge pages:
+
+   .. code-block:: console
+
+      echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages/nr_hugepages
+
+#. Load ``igb_uio`` or ``vfio-pci`` driver:
+
+   .. code-block:: console
+
+      modprobe uio
+      insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
+
+   or
+
+   .. code-block:: console
+
+      modprobe vfio-pci
+
+#. Setup VFIO permissions for regular users before binding to ``vfio-pci``:
+
+   .. code-block:: console
+
+      sudo chmod a+x /dev/vfio
+
+      sudo chmod 0666 /dev/vfio/*
+
+#. Bind the adapters to ``igb_uio`` or ``vfio-pci`` loaded in the previous step:
+
+   .. code-block:: console
+
+      ./usertools/dpdk-devbind.py --bind igb_uio DEVICE1 DEVICE2
+
+   Or setup VFIO permissions for regular users and then bind to ``vfio-pci``:
+
+   .. code-block:: console
+
+      ./usertools/dpdk-devbind.py --bind vfio-pci DEVICE1 DEVICE2
+
+   .. note::
+
+       DEVICE1, DEVICE2 are specified via PCI "domain:bus:slot.func" syntax
+       or "bus:slot.func" syntax.
+
+#. Start ``testpmd`` with basic parameters:
+
+   .. code-block:: console
+
+      ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -- -i