[RESEND] Throughput & CPU usage of WiFi download
Neil Armstrong
neil.armstrong at linaro.org
Tue Apr 4 06:36:34 PDT 2023
On 04/04/2023 14:54, Marc Gonzalez wrote:
> [ Re-sending, because gmail blocks messages with img extension, even within archives
> Great job Microsoft for inferring file type based on file extension... ]
>
> Hello everyone,
>
> I've been benchmarking various aspects of an SEI530 board,
> and wanted to share some of the results with the list.
>
> The main objective was to compare WiFi download performance
> on mainline/BR2 and vendor/android systems.
>
> (Mainline system was generated using pop-br2-ext-tree.zip.
> brcmfmac4359-sdio.* left out for size.)
>
> https://pixeldrain.com/u/qH3YotXP
>
>
> HW spec
> Board: SEI530 (SEI510 variant)
> SoC: S905X2
> WiFi: AP6398SR3-J (SDIO BCM4359/9)
>
> Test setup
> WiFi AP using 5Ghz channels 120 (primary) + 116 (secondary)
> BENCHMARK = "curl --silent -o /dev/null http://192.168.1.254:8095/fixed/10G"
> Kernel booted with
> 1) performance governor (no DVFS)
> 2) nohlt (keep counting cycles in idle)
>
>
> (Full results at the end)
>
> Observations:
> - vendor system manages 245 Mbps, using 40% CPU
> - mainline system manages 60 Mbps, using 10% CPU
> - vendor system limited to 62 Mbps, uses 9% CPU
>
> 1) Neil Armstrong mentioned that vendor kernel reaches
> higher throughput by playing tricks with some pads?
> (Not sure I understood that well, haven't looked at the code)
Vendor kernel uses the SDCard controller by swapping the SDIO lines,
so they use a fully functional controller unlike mainline.
And you should use the same Vendor BCMDHD driver on mainelin.
So the comparison isn't fair.
>
> 2) SDIO is clocked higher on vendor system, but could
> lead to instabilities on some boards?
>
> Interesting possible followups
> - try clocking SDIO higher on mainline system
> - measure CPU usage at 120 Mbps, does it scale linearly to 20%?
> - android curl seems to use smaller buffers?
>
>
> TEST RESULTS
>
> -- mainline/BR2 (v6.2)
>
> time perf record -a -F 1009 $BENCHMARK
> perf report -s pid -n --header
>
> 10_GB in 1338.127552_s = 59.8_Mbps
>
> # Overhead Samples Pid:Command
> 90.0445% 4863024 0:swapper = IDLE
> 7.2362% 390807 56:irq/17-ffe03000
> 1.9282% 104136 59:kworker/u9:0-br
> 0.6965% 37616 142:curl
> 0.0722% 3897 114:ksdioirqd/mmc2
> 0.0168% 908 141:perf
>
>
> -- vendor/android (4.9.180 + vendor patches)
>
> time simpleperf record -a -f 1009 $BENCHMARK
> simpleperf report --sort pid,comm
>
> 10_GB in 326.54_s = 245_Mbps
>
> Overhead Sample Pid Command
> 59.43% 680339 0 swapper = IDLE
> 12.59% 156593 15378 curl
> 11.42% 136024 4392 dhd_rxf
> 7.57% 88047 4391 dhd_dpc
> 2.52% 29977 2094 irq/51-meson-am
> 1.38% 16467 10541 system_server
> 0.75% 10394 17 ksoftirqd/1
> 0.73% 9282 15377 simpleperf
> 0.60% 9226 6 ksoftirqd/0
> 0.38% 4701 14865 kworker/0:0
> 0.14% 2055 29 ksoftirqd/3
> 0.13% 1636 3411 HwBinder:3411_1
> 0.13% 1760 23 ksoftirqd/2
> 0.12% 1484 10782 dmx_data_thread
> 0.12% 1469 3381 composer at 2.3-se
> 0.10% 1329 15425 Jit thread pool
>
>
> Same benchmark, rate limited to 8 MB/s
> time simpleperf record -a -f 1009 $BENCHMARK --limit-rate 8M
> simpleperf report --sort pid,comm
>
> 10_GB in 1290.22_s = 62 Mbps
>
> Overhead Sample Pid Command
> 91.68% 3687632 0 swapper = IDLE
> 2.67% 107057 4392 dhd_rxf
> 1.90% 74721 4391 dhd_dpc
> 1.00% 41650 22975 curl
> 0.70% 29239 10541 system_server
> 0.68% 27406 2094 irq/51-meson-am
> 0.58% 24781 22974 simpleperf
> 0.10% 4222 17 ksoftirqd/1
> 0.10% 4070 10782 dmx_data_thread
>
>
>
> _______________________________________________
> linux-amlogic mailing list
> linux-amlogic at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-amlogic
More information about the linux-amlogic
mailing list