From 22e2c8a7cb3dd05d662e7b3e62d9d438bdac0308 Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Sun, 19 Jan 2025 00:20:31 +0530 Subject: [PATCH 1/3] samples: wifi: sta: Improve the default performance This is a public facing Wi-Fi sample, so, improve the default perfomance to be suitable for all platforms, Zperf should give 4-5Mbps of UDP. Signed-off-by: Chaitanya Tata --- samples/wifi/sta/prj.conf | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/samples/wifi/sta/prj.conf b/samples/wifi/sta/prj.conf index 4d313e4f7b67..a438c852cca6 100644 --- a/samples/wifi/sta/prj.conf +++ b/samples/wifi/sta/prj.conf @@ -26,14 +26,13 @@ CONFIG_NET_UDP=y CONFIG_NET_TCP=y CONFIG_NET_DHCPV4=y -CONFIG_NET_PKT_RX_COUNT=8 -CONFIG_NET_PKT_TX_COUNT=8 +CONFIG_NET_PKT_RX_COUNT=16 +CONFIG_NET_PKT_TX_COUNT=16 # Below section is the primary contributor to SRAM and is currently # tuned for performance, but this will be revisited in the future. -CONFIG_NET_BUF_RX_COUNT=8 -CONFIG_NET_BUF_TX_COUNT=16 -CONFIG_NRF70_RX_NUM_BUFS=16 +CONFIG_NET_BUF_RX_COUNT=16 +CONFIG_NET_BUF_TX_COUNT=32 CONFIG_HEAP_MEM_POOL_SIZE=120000 CONFIG_HEAP_MEM_POOL_IGNORE_MIN=y CONFIG_NET_TC_TX_COUNT=1 From b5af7e71818f0286706eae36eb6137d5d5a32e38 Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Sun, 19 Jan 2025 00:22:01 +0530 Subject: [PATCH 2/3] samples: wifi: sta: Reduce RAM usage In few experiments, it was found that we only 75000 heap for driver, this reduced 15000 RAM. Signed-off-by: Chaitanya Tata --- samples/wifi/sta/prj.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/samples/wifi/sta/prj.conf b/samples/wifi/sta/prj.conf index a438c852cca6..5a0d3a111f6b 100644 --- a/samples/wifi/sta/prj.conf +++ b/samples/wifi/sta/prj.conf @@ -28,12 +28,13 @@ CONFIG_NET_DHCPV4=y CONFIG_NET_PKT_RX_COUNT=16 CONFIG_NET_PKT_TX_COUNT=16 +CONFIG_NRF70_RX_NUM_BUFS=16 # Below section is the primary contributor to SRAM and is currently # tuned for performance, but this will be revisited in the future. CONFIG_NET_BUF_RX_COUNT=16 CONFIG_NET_BUF_TX_COUNT=32 -CONFIG_HEAP_MEM_POOL_SIZE=120000 +CONFIG_HEAP_MEM_POOL_SIZE=105000 CONFIG_HEAP_MEM_POOL_IGNORE_MIN=y CONFIG_NET_TC_TX_COUNT=1 From 40ce4b5e6c2a24176b1bc55e02e3646ec033f5de Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Sun, 19 Jan 2025 00:32:44 +0530 Subject: [PATCH 3/3] samples: wifi: sta: Add Zperf overlay This overlay is used to run Zperf benchmarks, the network buffer and heap paramters are not overridden to make it easier to collect memory footprints. Signed-off-by: Chaitanya Tata --- samples/wifi/sta/README.rst | 10 ++++++++++ samples/wifi/sta/overlay-zperf.conf | 17 +++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 samples/wifi/sta/overlay-zperf.conf diff --git a/samples/wifi/sta/README.rst b/samples/wifi/sta/README.rst index 7066f24b526a..3a6eb15132c1 100644 --- a/samples/wifi/sta/README.rst +++ b/samples/wifi/sta/README.rst @@ -224,6 +224,16 @@ The average current consumption in an idle case can be around ~1-2 mA in the nRF See :ref:`app_power_opt` for more information on power management testing and usage of the PPK2. +Performance testing +******************* + +The sample can be used to test the performance of the Wi-Fi connection. +The performance tuning is done to achieve a trade-off between memory usage and performance. + +The overlay file is located at :file:`overlay-zperf.conf` to run the performance test. +Default build without the overlay is used to memory footprint testing and analysis. +The overlay should be enabled to run the performance test corresponding to the memory footprint. + Dependencies ************ diff --git a/samples/wifi/sta/overlay-zperf.conf b/samples/wifi/sta/overlay-zperf.conf new file mode 100644 index 000000000000..bbb9c5a55431 --- /dev/null +++ b/samples/wifi/sta/overlay-zperf.conf @@ -0,0 +1,17 @@ +CONFIG_NET_ZPERF=y +# Mimic real-world conditions +CONFIG_NET_ZPERF_MAX_PACKET_SIZE=1500 +CONFIG_NRF70_QSPI_LOW_POWER=n +# Debug +CONFIG_NRF70_UTIL=y +CONFIG_SHELL=y +CONFIG_SHELL_STACK_SIZE=4600 +CONFIG_NET_SHELL=y +CONFIG_SHELL_GETOPT=y +CONFIG_SHELL_CMDS_RESIZE=n +CONFIG_NRF70_UTIL=y +CONFIG_NET_L2_WIFI_SHELL=y +CONFIG_NET_STATISTICS=y +CONFIG_NET_STATISTICS_WIFI=y +CONFIG_NET_STATISTICS_USER_API=y +CONFIG_SYS_HEAP_RUNTIME_STATS=y