[RFC] doc/linux_gsg: add amd configuration section

Message ID 20231010153409.1701-1-vipin.varghese@amd.com (mailing list archive)
State Deferred
Delegated to: Thomas Monjalon
Headers
Series [RFC] doc/linux_gsg: add amd configuration section |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/intel-Functional success Functional PASS

Commit Message

Varghese, Vipin Oct. 10, 2023, 3:34 p.m. UTC
  Add AMD EPYC SoC tuning guide as new setcion of linux getting
started guide.

Signed-off-by: Vipin Varghese <vipin.varghese@amd.com>
---
 doc/guides/linux_gsg/amd_platform.rst | 63 +++++++++++++++++++++++++++
 doc/guides/linux_gsg/index.rst        |  1 +
 2 files changed, 64 insertions(+)
 create mode 100644 doc/guides/linux_gsg/amd_platform.rst
  

Comments

Varghese, Vipin Dec. 20, 2023, 9:24 a.m. UTC | #1
Got `Superseded` is there a new version shared for `AMD tuning guide`?

On 10/10/2023 9:04 PM, Vipin Varghese wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> Add AMD EPYC SoC tuning guide as new setcion of linux getting
> started guide.
>
> Signed-off-by: Vipin Varghese<vipin.varghese@amd.com>
> ---
>   doc/guides/linux_gsg/amd_platform.rst | 63 +++++++++++++++++++++++++++
>   doc/guides/linux_gsg/index.rst        |  1 +
>   2 files changed, 64 insertions(+)
>   create mode 100644 doc/guides/linux_gsg/amd_platform.rst
>
> diff --git a/doc/guides/linux_gsg/amd_platform.rst b/doc/guides/linux_gsg/amd_platform.rst
> new file mode 100644
> index 0000000000..cdb535e9c0
> --- /dev/null
> +++ b/doc/guides/linux_gsg/amd_platform.rst
> @@ -0,0 +1,63 @@
> +..  SPDX-License-Identifier: BSD-3-Clause
> +    Copyright(c) 2023 Advanced Micro Devices, Inc. All rights reserved.
> +
> +How to get best performance on AMD platform
> +===========================================
> +
> +This document shares step-by-step guide for configuring AMD EPYC SoC across various families for getting best performance for DPDK applications.
> +Various factors like BIOS, Numa Per Socket, Memory per Numa, near-far from IO device affects the overall performance.
> +
> +These are covered in various sections of tuning guides shared below.
> +
> +
> +Tuning Guide for AMD EPYC SoC
> +-----------------------------
> +
> +#. `MILAN<https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/data-plane-development-kit-tuning-guide-amd-epyc7003-series-processors.pdf>`_
> +
> +#. `GENOA<https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58017-amd-epyc-9004-tg-data-plane-dpdk.pdf>`_
> +
> +#. `BERGAMO|SIENNA<https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58310_amd-epyc-8004-tg-data-plane-dpdk.pdf>`_
> +
> +
> +General Requirements
> +--------------------
> +
> +Memory
> +~~~~~~
> +
> +Refer `Memory Configuration` section for SoC specific details.
> +
> +Note: general thumb rule is to ensure that each memory channel has at least one memory DIMM populated. The ideal memory size for each is at least 8|16|32 GB ECC modules.
> +
> +
> +BIOS
> +----
> +
> +Refer `BIOS Performance` section in tuning guide for recommended settings.
> +
> +
> +Linux Grub
> +----------
> +
> +Refer `Linux OS & Kernel` in tuning guide for recommended settings.
> +
> +
> +NIC and Accelerator
> +-------------------
> +
> +AMD EPYC supports PCIe Generation of 1|2|3|4|5 depending upon SoC families. For best performance ensure the right slots are used which provides adequate bandwidth.
> +
> +Use ``lspci`` to check the speed of a PCI slot ::
> +
> +      lspci -s 41:00.0 -vv | grep LnkSta
> +
> +      LnkSta: Speed 16GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- ...
> +      LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ ...
> +
> +
> +Compiler
> +-------
> +
> +Refer `Compiler Flags` for recommended version and `-march` flags.
> +
> diff --git a/doc/guides/linux_gsg/index.rst b/doc/guides/linux_gsg/index.rst
> index c3e67bf9ec..ecdaf35eec 100644
> --- a/doc/guides/linux_gsg/index.rst
> +++ b/doc/guides/linux_gsg/index.rst
> @@ -21,3 +21,4 @@ Getting Started Guide for Linux
>       linux_eal_parameters
>       enable_func
>       nic_perf_intel_platform
> +    amd_platform
> --
> 2.34.1
>
  
David Marchand Dec. 20, 2023, 9:27 a.m. UTC | #2
On Wed, Dec 20, 2023 at 10:25 AM Varghese, Vipin <vipin.varghese@amd.com> wrote:
>
> Got `Superseded` is there a new version shared for `AMD tuning guide`?

That's a question for yourself.
I saw two patches with the same title.
More checks were passing on the more recent one.
I marked the first as superseded.
  
Varghese, Vipin Dec. 20, 2023, 9:31 a.m. UTC | #3
On 12/20/2023 2:57 PM, David Marchand wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> On Wed, Dec 20, 2023 at 10:25 AM Varghese, Vipin <vipin.varghese@amd.com> wrote:
>> Got `Superseded` is there a new version shared for `AMD tuning guide`?
> That's a question for yourself.
> I saw two patches with the same title.

I am searching for the second one that you have mentioned.

> More checks were passing on the more recent one.
> I marked the first as superseded.

I will reach out in slack if I am not able to find so.


>
>
> --
> David Marchand
>
  
David Marchand Dec. 20, 2023, 9:32 a.m. UTC | #4
On Wed, Dec 20, 2023 at 10:31 AM Varghese, Vipin <vipin.varghese@amd.com> wrote:
> On 12/20/2023 2:57 PM, David Marchand wrote:
> > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
> >
> >
> > On Wed, Dec 20, 2023 at 10:25 AM Varghese, Vipin <vipin.varghese@amd.com> wrote:
> >> Got `Superseded` is there a new version shared for `AMD tuning guide`?
> > That's a question for yourself.
> > I saw two patches with the same title.
>
> I am searching for the second one that you have mentioned.
>
> > More checks were passing on the more recent one.
> > I marked the first as superseded.
>
> I will reach out in slack if I am not able to find so.

https://patchwork.dpdk.org/project/dpdk/list/?submitter=2511&state=*
  
Varghese, Vipin Dec. 20, 2023, 9:36 a.m. UTC | #5
On 12/20/2023 3:02 PM, David Marchand wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> On Wed, Dec 20, 2023 at 10:31 AM Varghese, Vipin <vipin.varghese@amd.com> wrote:
>> On 12/20/2023 2:57 PM, David Marchand wrote:
>>> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>>>
>>>
>>> On Wed, Dec 20, 2023 at 10:25 AM Varghese, Vipin <vipin.varghese@amd.com> wrote:
>>>> Got `Superseded` is there a new version shared for `AMD tuning guide`?
>>> That's a question for yourself.
>>> I saw two patches with the same title.
>> I am searching for the second one that you have mentioned.
>>
>>> More checks were passing on the more recent one.
>>> I marked the first as superseded.
>> I will reach out in slack if I am not able to find so.
> https://patchwork.dpdk.org/project/dpdk/list/?submitter=2511&state=*


I now understand. Checked the same, and fixed the windows git-bash. Did 
not notice this,

Thanks for helping.

>
>
> --
> David Marchand
>
  
Thomas Monjalon Jan. 16, 2024, 3:14 p.m. UTC | #6
There was no comment on this doc.
It is RFC, is it ready to merge?

Instead of the Linux guide, should we add it to the platform guides?
	doc/guides/platform/

We may want to create an entry in MAINTAINERS as well.

More details below.


10/10/2023 17:34, Vipin Varghese:
> Add AMD EPYC SoC tuning guide as new setcion of linux getting

typo: section

> started guide.
> 
> Signed-off-by: Vipin Varghese <vipin.varghese@amd.com>
> ---
> +This document shares step-by-step guide for configuring AMD EPYC SoC across various families for getting best performance for DPDK applications.
> +Various factors like BIOS, Numa Per Socket, Memory per Numa, near-far from IO device affects the overall performance.

Numa -> NUMA

> +
> +These are covered in various sections of tuning guides shared below.
> +
> +
> +Tuning Guide for AMD EPYC SoC
> +-----------------------------
> +
> +#. `MILAN <https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/data-plane-development-kit-tuning-guide-amd-epyc7003-series-processors.pdf>`_
> +
> +#. `GENOA <https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58017-amd-epyc-9004-tg-data-plane-dpdk.pdf>`_
> +
> +#. `BERGAMO|SIENNA <https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58310_amd-epyc-8004-tg-data-plane-dpdk.pdf>`_
> +
> +
> +General Requirements
> +--------------------
> +
> +Memory
> +~~~~~~
> +
> +Refer `Memory Configuration` section for SoC specific details.
> +
> +Note: general thumb rule is to ensure that each memory channel has at least one memory DIMM populated. The ideal memory size for each is at least 8|16|32 GB ECC modules.

Please start a new sentence on a new line.
  
Varghese, Vipin Jan. 24, 2024, 6:11 p.m. UTC | #7
On 1/16/2024 8:44 PM, Thomas Monjalon wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> There was no comment on this doc.
> It is RFC, is it ready to merge?

new patch shared doc/linux_gsg: add amd configuration section - 
Patchwork (dpdk.org) 
<https://patchwork.dpdk.org/project/dpdk/patch/20240124181021.1759-1-vipin.varghese@amd.com/>


>
> Instead of the Linux guide, should we add it to the platform guides?
>          doc/guides/platform/
>
> We may want to create an entry in MAINTAINERS as well.

thank you, added the same under `AMD x86`

>
> More details below.
>
>
> 10/10/2023 17:34, Vipin Varghese:
>> Add AMD EPYC SoC tuning guide as new setcion of linux getting
> typo: section
fixed, spell check did not catch this for me. My mistake
>> started guide.
>>
>> Signed-off-by: Vipin Varghese<vipin.varghese@amd.com>
>> ---
>> +This document shares step-by-step guide for configuring AMD EPYC SoC across various families for getting best performance for DPDK applications.
>> +Various factors like BIOS, Numa Per Socket, Memory per Numa, near-far from IO device affects the overall performance.
> Numa -> NUMA
changed to all capital
>> +
>> +These are covered in various sections of tuning guides shared below.
>> +
>> +
>> +Tuning Guide for AMD EPYC SoC
>> +-----------------------------
>> +
>> +#. `MILAN<https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/data-plane-development-kit-tuning-guide-amd-epyc7003-series-processors.pdf>`_
>> +
>> +#. `GENOA<https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58017-amd-epyc-9004-tg-data-plane-dpdk.pdf>`_
>> +
>> +#. `BERGAMO|SIENNA<https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58310_amd-epyc-8004-tg-data-plane-dpdk.pdf>`_
>> +
>> +
>> +General Requirements
>> +--------------------
>> +
>> +Memory
>> +~~~~~~
>> +
>> +Refer `Memory Configuration` section for SoC specific details.
>> +
>> +Note: general thumb rule is to ensure that each memory channel has at least one memory DIMM populated. The ideal memory size for each is at least 8|16|32 GB ECC modules.
> Please start a new sentence on a new line.
correction applied.
>
  

Patch

diff --git a/doc/guides/linux_gsg/amd_platform.rst b/doc/guides/linux_gsg/amd_platform.rst
new file mode 100644
index 0000000000..cdb535e9c0
--- /dev/null
+++ b/doc/guides/linux_gsg/amd_platform.rst
@@ -0,0 +1,63 @@ 
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2023 Advanced Micro Devices, Inc. All rights reserved.
+
+How to get best performance on AMD platform
+===========================================
+
+This document shares step-by-step guide for configuring AMD EPYC SoC across various families for getting best performance for DPDK applications.
+Various factors like BIOS, Numa Per Socket, Memory per Numa, near-far from IO device affects the overall performance.
+
+These are covered in various sections of tuning guides shared below.
+
+
+Tuning Guide for AMD EPYC SoC
+-----------------------------
+
+#. `MILAN <https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/data-plane-development-kit-tuning-guide-amd-epyc7003-series-processors.pdf>`_
+
+#. `GENOA <https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58017-amd-epyc-9004-tg-data-plane-dpdk.pdf>`_
+
+#. `BERGAMO|SIENNA <https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58310_amd-epyc-8004-tg-data-plane-dpdk.pdf>`_
+
+
+General Requirements
+--------------------
+
+Memory
+~~~~~~
+
+Refer `Memory Configuration` section for SoC specific details.
+
+Note: general thumb rule is to ensure that each memory channel has at least one memory DIMM populated. The ideal memory size for each is at least 8|16|32 GB ECC modules.
+
+
+BIOS
+----
+
+Refer `BIOS Performance` section in tuning guide for recommended settings.
+
+
+Linux Grub
+----------
+
+Refer `Linux OS & Kernel` in tuning guide for recommended settings.
+
+
+NIC and Accelerator
+-------------------
+
+AMD EPYC supports PCIe Generation of 1|2|3|4|5 depending upon SoC families. For best performance ensure the right slots are used which provides adequate bandwidth.
+
+Use ``lspci`` to check the speed of a PCI slot ::
+
+      lspci -s 41:00.0 -vv | grep LnkSta
+
+      LnkSta: Speed 16GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- ...
+      LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ ...
+
+
+Compiler
+-------
+
+Refer `Compiler Flags` for recommended version and `-march` flags.
+
diff --git a/doc/guides/linux_gsg/index.rst b/doc/guides/linux_gsg/index.rst
index c3e67bf9ec..ecdaf35eec 100644
--- a/doc/guides/linux_gsg/index.rst
+++ b/doc/guides/linux_gsg/index.rst
@@ -21,3 +21,4 @@  Getting Started Guide for Linux
     linux_eal_parameters
     enable_func
     nic_perf_intel_platform
+    amd_platform