[RFC] doc/linux_gsg: add amd configuration section

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

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS

Commit Message

Varghese, Vipin Oct. 10, 2023, 3:25 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
  

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..bcd12bf4f9
--- /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 familes. 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