[dpdk-dev] [PATCH v3] doc: add performance test guide to the linux gsg

2015-09-29 Thread Xu, Qian Q
Thomas
Thanks for the comments. See my comments inline below. Let me know if you have 
objections, if no, I will send a v4 patch soon. 

Thanks
Qian

-Original Message-
From: Thomas Monjalon [mailto:thomas.monja...@6wind.com] 
Sent: Friday, September 25, 2015 10:11 PM
To: Xu, Qian Q
Cc: dev at dpdk.org
Subject: Re: [dpdk-dev] [PATCH v3] doc: add performance test guide to the linux 
gsg

2015-09-24 19:48, Qian Xu:
> --- a/doc/guides/linux_gsg/index.rst
> +++ b/doc/guides/linux_gsg/index.rst
> @@ -47,3 +47,4 @@ Contents
>  build_sample_apps
>  enable_func
>  quick_start
> +perf_test_intel_platform_nic

Why "test"? What about nic_perf_intel_platform?
[Qian] OK. 

> --- /dev/null
> +++ b/doc/guides/linux_gsg/perf_test_intel_platform_nic.rst
[...]
> +Grub Boot Parameters
> +
> +
> +The following are some recommendations on GRUB boot settings:
> +
> +#. Use the default grub file as a starting point.
> +
> +#. Reserve 1G huge pages via grub configurations. For example to reserve 8 
> huge pages of 1G size::
> +
> +  default_hugepagesz=1G hugepagesz=1G hugepages=8
> +
> +#. Isolate CPU cores which will be used for DPDK. For example::
> +
> +  isolcpus=2,3,4,5,6,7,8
> +
> +#. If it wants to use VFIO, use the following additional grub parameters::
> +
> +  iommu=pt intel_iommu=on

These paramters can be set with GRUB, yes.
But they are Linux command line parameters.
I suggest to change the title.
[Qian] OK. 
[...]
> +4. Bind the test ports to igb_uio. For example bind two ports to a DPDK 
> compatible driver and check the status:

Not speaking about VFIO here suggests that igb_uio gives better performance.
By the way, UIO/VFIO is not used by mlx4.
[Qian] In fact not suggests a better performance with igb_uio, but as to VFIO, 
we need to turn on VT-d in the BIOS, it's an additional step. So here I want to 
change it as "UIO(e.g: igb_uio) or VFIO(turn on VT-d in the BIOS)", not sure 
mlx4 uses which module for dpdk running. 
[...]
> +   Note: Don't use one 2 lcores on the same core

one 2 lcores? looks to be a typo
[Qian] Will correct it.
[...]
> +5. As it is known that a XL710 40G port need at least two queue pairs to 
> achieve best performance,

Is it well known? At least it is said here.
[Qian] Maybe well known only in Intel. I will change it as : A XL710 40G port 
need at least two queue pairs to achieve best performance. 

> +8. Configure the traffic to a traffic generator such as IXIA or Spirent.
> +
> +   * Start creating a stream on packet generator, e.g. IXIA.

Not sure mentioning IXIA or Spirent helps here.
Same comment for the (nice) diagram.
[Qian] *Start creating a stream on packet generator, usually hardware traffic 
generator can provide line rate traffic, so the NIC's best performance will not 
be limited by the traffic generator. Hardware traffic generator is like IXIA or 
Spirent. You can also use high speed software traffic generator to check the 
NIC's performance. 


Thanks for the documentation effort.


[dpdk-dev] [PATCH v3] doc: add performance test guide to the linux gsg

2015-09-25 Thread Thomas Monjalon
2015-09-24 19:48, Qian Xu:
> --- a/doc/guides/linux_gsg/index.rst
> +++ b/doc/guides/linux_gsg/index.rst
> @@ -47,3 +47,4 @@ Contents
>  build_sample_apps
>  enable_func
>  quick_start
> +perf_test_intel_platform_nic

Why "test"? What about nic_perf_intel_platform?

> --- /dev/null
> +++ b/doc/guides/linux_gsg/perf_test_intel_platform_nic.rst
[...]
> +Grub Boot Parameters
> +
> +
> +The following are some recommendations on GRUB boot settings:
> +
> +#. Use the default grub file as a starting point.
> +
> +#. Reserve 1G huge pages via grub configurations. For example to reserve 8 
> huge pages of 1G size::
> +
> +  default_hugepagesz=1G hugepagesz=1G hugepages=8
> +
> +#. Isolate CPU cores which will be used for DPDK. For example::
> +
> +  isolcpus=2,3,4,5,6,7,8
> +
> +#. If it wants to use VFIO, use the following additional grub parameters::
> +
> +  iommu=pt intel_iommu=on

These paramters can be set with GRUB, yes.
But they are Linux command line parameters.
I suggest to change the title.

[...]
> +4. Bind the test ports to igb_uio. For example bind two ports to a DPDK 
> compatible driver and check the status:

Not speaking about VFIO here suggests that igb_uio gives better performance.
By the way, UIO/VFIO is not used by mlx4.

[...]
> +   Note: Don't use one 2 lcores on the same core

one 2 lcores? looks to be a typo

[...]
> +5. As it is known that a XL710 40G port need at least two queue pairs to 
> achieve best performance,

Is it well known? At least it is said here.

> +8. Configure the traffic to a traffic generator such as IXIA or Spirent.
> +
> +   * Start creating a stream on packet generator, e.g. IXIA.

Not sure mentioning IXIA or Spirent helps here.
Same comment for the (nice) diagram.

Thanks for the documentation effort.


[dpdk-dev] [PATCH v3] doc: add performance test guide to the linux gsg

2015-09-24 Thread Qian Xu
Add a new guide doc as part of the Linux Getting Started Guide.

The document is a step-by-step guide on how to get high performance
with DPDK on an Intel platform.

It is designed for users who are not familiar with DPDK but would like
to get the best performance with NICs.

Signed-off-by: Qian Xu 
---

Changes in v3:
* Refined the svg file.
* Made the perf guide more general, not specific with Intel NICs.
* Update BIOS settings.
* Update rst file format.
* Put it into linux_gsg folder.

Changes in v2:
* Created a svg file.
* Add one part about how to check memory channels by dmidecode.
* Add the command about how to check PCIe slot's speed.
* Some doc updates according to the comments.

diff --git a/doc/guides/linux_gsg/build_dpdk.rst 
b/doc/guides/linux_gsg/build_dpdk.rst
index 2680e66..a7d2cda 100644
--- a/doc/guides/linux_gsg/build_dpdk.rst
+++ b/doc/guides/linux_gsg/build_dpdk.rst
@@ -28,6 +28,8 @@
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+.. _linux_gsg_compiling_dpdk:
+
 Compiling the DPDK Target from Source
 =

diff --git a/doc/guides/linux_gsg/img/intel_perf_test_setup.svg 
b/doc/guides/linux_gsg/img/intel_perf_test_setup.svg
new file mode 100644
index 000..31c60a6
--- /dev/null
+++ b/doc/guides/linux_gsg/img/intel_perf_test_setup.svg
@@ -0,0 +1,507 @@
+
+
+
+http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="750.94739"
+   height="466.69046"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="performance_test_setup.svg">
+  
+
+  
+
+
+  
+
+
+  
+
+
+  
+
+
+  
+
+
+  
+
+
+  
+
+  
+  
+  
+
+  
+image/svg+xml
+http://purl.org/dc/dcmitype/StillImage"; />
+
+  
+
+  
+  
+
+
+IXIA
+
+
+Dest
 MAC: Port 0Dest IP: 2.1.1.1Src IP: Random
+Port
 A
+
+
+Dest MAC: Port 1Dest IP: 1.1.1.1Src IP: Random
+Port
 B
+
+
+
+Intel XL 71040G Ethernet
+Port
 0
+Flow 2
+Flow 1
+
+Port
 X
+  
+  
+
+
+
+Intel XL 71040G Ethernet
+
+Port
 1
+
+Port
 X
+
+Port
 0 to Port 1Port
 1 to Port 0 
+Forwarding
+IA
 Platform(Socket 1)
+  
+
diff --git a/doc/guides/linux_gsg/index.rst b/doc/guides/linux_gsg/index.rst
index 89800cc..f8b5086 100644
--- a/doc/guides/linux_gsg/index.rst
+++ b/doc/guides/linux_gsg/index.rst
@@ -47,3 +47,4 @@ Contents
 build_sample_apps
 enable_func
 quick_start
+perf_test_intel_platform_nic
diff --git a/doc/guides/linux_gsg/perf_test_intel_platform_nic.rst 
b/doc/guides/linux_gsg/perf_test_intel_platform_nic.rst
new file mode 100644
index 000..e235c5e
--- /dev/null
+++ b/doc/guides/linux_gsg/perf_test_intel_platform_nic.rst
@@ -0,0 +1,260 @@
+How to get best performance with NICs on Intel platforms
+
+
+This document is a step-by-step guide for getting high performance from DPDK 
applications on Intel platforms.
+
+
+Hardware and Memory Requirements
+
+
+For best performance use an Intel Xeon class server system such as Ivy Bridge, 
Haswell or newer.
+
+Ensure that each memory channel has at least one memory DIMM inserted, and 
that the memory size for each is at least 4GB.
+**Note**: this has one of the most direct effects on performance.
+
+You can check the memory configuration using ``dmidecode`` as follows::
+
+  dmidecode -t memory | grep Locator
+
+  Locator: DIMM_A1
+  Bank Locator: NODE 1
+  Locator: DIMM_A2
+  Bank Locator: NODE 1
+  Locator: DIMM_B1
+  Bank Locator: NODE 1
+  Locator: DIMM_B2
+  Bank Locator: NODE 1
+  ...
+  Locator: DIMM_G1
+  Bank Locator: NODE 2
+  Locator: DIMM_G2
+  Bank Locator: NODE 2
+  Locator: DIMM_H1
+  Bank Locator: NODE 2
+  Locator: DIMM_H2
+  Bank Locator: NODE 2
+
+The sample output above shows a total of 8 channels, from ``A`` to ``H``, 
where each channel has 2 DIMMs.
+
+You can also use ``dmidecode`` to determine the memory frequency::
+
+  dmidecode -t memory | grep Speed
+
+  Speed: 2133 MHz
+  Configured Clock Speed: 2134 MHz
+  Speed: Unknown
+  Configured Clock Speed: Unknown
+  Speed: 2133 MHz
+  Configured Clock Speed: 2134 MHz
+  Speed: Unknown
+  ...
+  Speed: 2133 MHz
+  Configured Clock Speed: 2134 MHz
+  Speed: Unknown
+  Configured Clock Speed: Unknown
+  Spe

[dpdk-dev] [PATCH v3] doc: add performance test guide to the linux gsg

2015-09-24 Thread Mcnamara, John
> -Original Message-
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Qian Xu
> Sent: Thursday, September 24, 2015 12:49 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH v3] doc: add performance test guide to the
> linux gsg
> 
> Add a new guide doc as part of the Linux Getting Started Guide.
> 
> The document is a step-by-step guide on how to get high performance with
> DPDK on an Intel platform.
> 
> It is designed for users who are not familiar with DPDK but would like to
> get the best performance with NICs.
> 
> Signed-off-by: Qian Xu 

Acked-by: John McNamara 



[dpdk-dev] [PATCH v3] doc: add performance test guide to the linux gsg

2015-09-24 Thread Mcnamara, John
> -Original Message-
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Qian Xu
> Sent: Thursday, September 24, 2015 12:49 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH v3] doc: add performance test guide to the
> linux gsg
> 
> Add a new guide doc as part of the Linux Getting Started Guide.
> 
> The document is a step-by-step guide on how to get high performance with
> DPDK on an Intel platform.
> 
> It is designed for users who are not familiar with DPDK but would like to
> get the best performance with NICs.
> 
> Signed-off-by: Qian Xu 

Acked-by: John McNamara