Armada 37xx has coherent bus, similar to Armada 7k/8k. Cache synchronization consumes a lot of CPU cycles. Enabling coherent DMA increases IOPS performance up to 4 times. Some numbers: Data length Algo MB 16 64 128 256 1024 1424 4096 DES-ECB 1 +21 % +5 % +5 % +7 % +7 % +3 % +20 % AES-ECB-128 1 +21 % +6 % +6 % +6 % +9 % +8 % +22 % AES-CBC-128 1 +21 % +5 % +5 % +5 % +6 % +7 % +23 % AES-CBC-256 1 +23 % +7 % +8 % +6 % +11 % +13 % +20 % Data length Algo MB 16 64 256 512 1024 1420 4096 8192 AES-GCM-128 1 +44 % +42 % +31 % +32 % +27 % +30 % +32 % +30 % AES-GCM-128 8 +319 % +326 % +163 % +148 % +75 % +72 % +74 % +41 % AES-GCM-128 4096 +123 % +128 % +90 % +83 % +116 % +59 % +38 % +28 % Data length Algo MB 16 64 256 1024 2048 4096 8192 MD5 1 +21 % +15 % +29 % +25 % +50 % +16 % +20 % SHA1 1 +24 % +22 % +27 % +22 % +18 % +20 % +20 % SHA256 1 +30 % +24 % +25 % +26 % +21 % +41 % +19 % SHA512 1 +4 % +3 % +8 % +10 % +24 % +10 % +11 % Tested on Armada 3720. Platform passes testmgr selftests. Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl> Link: https://github.com/openwrt/openwrt/pull/23646 Signed-off-by: Robert Marko <robimarko@gmail.com>
47 lines
1.8 KiB
Diff
47 lines
1.8 KiB
Diff
From 5dd98e0389545b302b0c46cef2264b5b09c01677 Mon Sep 17 00:00:00 2001
|
|
From: Aleksander Jan Bajkowski <olek2@wp.pl>
|
|
Date: Sun, 24 May 2026 14:44:53 +0200
|
|
Subject: [PATCH] arm64: dts: marvell: armada-37xx: mark EIP97 as dma-coherent
|
|
|
|
Armada 37xx has coherent bus, similar to Armada 7k/8k. Cache
|
|
synchronization consumes a lot of CPU cycles. Enabling coherent DMA
|
|
increases IOPS performance up to 4 times. Some numbers:
|
|
Data length
|
|
Algo MB 16 64 128 256 1024 1424 4096
|
|
DES-ECB 1 +21 % +5 % +5 % +7 % +7 % +3 % +20 %
|
|
AES-ECB-128 1 +21 % +6 % +6 % +6 % +9 % +8 % +22 %
|
|
AES-CBC-128 1 +21 % +5 % +5 % +5 % +6 % +7 % +23 %
|
|
AES-CBC-256 1 +23 % +7 % +8 % +6 % +11 % +13 % +20 %
|
|
|
|
Data length
|
|
Algo MB 16 64 256 512 1024 1420 4096 8192
|
|
AES-GCM-128 1 +44 % +42 % +31 % +32 % +27 % +30 % +32 % +30 %
|
|
AES-GCM-128 8 +319 % +326 % +163 % +148 % +75 % +72 % +74 % +41 %
|
|
AES-GCM-128 4096 +123 % +128 % +90 % +83 % +116 % +59 % +38 % +28 %
|
|
|
|
Data length
|
|
Algo MB 16 64 256 1024 2048 4096 8192
|
|
MD5 1 +21 % +15 % +29 % +25 % +50 % +16 % +20 %
|
|
SHA1 1 +24 % +22 % +27 % +22 % +18 % +20 % +20 %
|
|
SHA256 1 +30 % +24 % +25 % +26 % +21 % +41 % +19 %
|
|
SHA512 1 +4 % +3 % +8 % +10 % +24 % +10 % +11 %
|
|
|
|
Tested on Armada 3720. Platform passes testmgr selftests.
|
|
|
|
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
|
|
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
|
|
---
|
|
arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
|
|
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
|
|
@@ -440,6 +440,7 @@
|
|
interrupt-names = "ring0", "ring1", "ring2",
|
|
"ring3", "eip", "mem";
|
|
clocks = <&nb_periph_clk 15>;
|
|
+ dma-coherent;
|
|
};
|
|
|
|
rwtm: mailbox@b0000 {
|