From acf5b6eccb20e2f307bef82e41d9e7d6ac3bae26 Mon Sep 17 00:00:00 2001 From: Ondrej Kosta Date: Thu, 7 Sep 2023 09:36:01 +0200 Subject: [PATCH] docs(esp_eth): added Ethernet to Improving Network Speed section --- docs/en/api-guides/performance/speed.rst | 1 + examples/ethernet/iperf/sdkconfig.defaults | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/en/api-guides/performance/speed.rst b/docs/en/api-guides/performance/speed.rst index 07e85125e1..d58f4dec34 100644 --- a/docs/en/api-guides/performance/speed.rst +++ b/docs/en/api-guides/performance/speed.rst @@ -240,3 +240,4 @@ Improving Network Speed :SOC_WIFI_SUPPORTED: * For Wi-Fi, see :ref:`How-to-improve-Wi-Fi-performance` and :ref:`wifi-buffer-usage` * For lwIP TCP/IP (Wi-Fi and Ethernet), see :ref:`lwip-performance` :SOC_WIFI_SUPPORTED: * The :example:`wifi/iperf` example contains a configuration that is heavily optimized for Wi-Fi TCP/IP throughput. Append the contents of the files :example_file:`wifi/iperf/sdkconfig.defaults`, :example_file:`wifi/iperf/sdkconfig.defaults.{IDF_TARGET_PATH_NAME}` and :example_file:`wifi/iperf/sdkconfig.ci.99` to your project ``sdkconfig`` file in order to add all of these options. Note that some of these options may have trade-offs in terms of reduced debuggability, increased firmware size, increased memory usage, or reduced performance of other features. To get the best result, read the documentation pages linked above and use this information to determine exactly which options are best suited for your app. + :SOC_EMAC_SUPPORTED: * The :example:`ethernet/iperf` example contains a configuration that is heavily optimized for Ethernet TCP/IP throughput. Examine :example_file:`ethernet/iperf/sdkconfig.defaults` for more details. Note that some of these options may have trade-offs in terms of reduced debuggability, increased firmware size, increased memory usage, or reduced performance of other features. To get the best result, read the documentation pages linked above and use related information to determine exactly which options are best suited for your app. diff --git a/examples/ethernet/iperf/sdkconfig.defaults b/examples/ethernet/iperf/sdkconfig.defaults index efd490ca6d..c6ad4c051e 100644 --- a/examples/ethernet/iperf/sdkconfig.defaults +++ b/examples/ethernet/iperf/sdkconfig.defaults @@ -1,7 +1,8 @@ # Increase main task stack size CONFIG_ESP_MAIN_TASK_STACK_SIZE=7168 -# Enable filesystem +# Enable filesystem for console commands history storage +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y CONFIG_PARTITION_TABLE_CUSTOM=y CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_example.csv" CONFIG_PARTITION_TABLE_FILENAME="partitions_example.csv" @@ -10,11 +11,16 @@ CONFIG_PARTITION_TABLE_FILENAME="partitions_example.csv" CONFIG_FREERTOS_USE_TRACE_FACILITY=y CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y +# -------------------------------- +# Performance optimization options +# -------------------------------- +# `lwIP` and `iperf` tasks have serial dependency to each other (i.e. `iperf` must wait for `lwIP` +# to process the packets). Therefore, you don't gain much performance improvement when running +# multi core mode. On the other hand, IRAM optimizations have greater effect for single core mode. + # Run FreeRTOS only on the first core CONFIG_FREERTOS_UNICORE=y -CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y - # Disable watch dog CONFIG_ESP_INT_WDT=n CONFIG_ESP_TASK_WDT_EN=n