[Bug 226682] ARMADA38X: Running out of CESA TDMA descriptors for disk I/O on GELI SSD
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sat Mar 17 20:06:05 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=226682
Bug ID: 226682
Summary: ARMADA38X: Running out of CESA TDMA descriptors for
disk I/O on GELI SSD
Product: Base System
Version: CURRENT
Hardware: arm
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: arm
Assignee: freebsd-arm at FreeBSD.org
Reporter: chris at mumac.de
While testing I/O performance on a SolidRun Clearfog Pro (ARMADA A38x) with an
SSD (PLEXTOR PX-128M6G-2242) encrypted by GELI AES-CBC, errors were reported on
the console/dmesg about running out of TMDA descriptors.
Looking at sys/dev/cesa/cesa.h, the comments seem to focus on network buffers
with a maximum size of 1500 bytes while SSD disk I/O in my case would involve
4KB buffers. Without really diving into the rest of the code, I've increased
the values in cesa.h and can now operate the SSD with sustained rates ~200MB/s
without running out of TDMA descriptors.
There might be better ways to do this but the "diff" below most certainly fixed
my issue.
Index: sys/dev/cesa/cesa.h
===================================================================
--- sys/dev/cesa/cesa.h (revision 329554)
+++ sys/dev/cesa/cesa.h (working copy)
@@ -63,8 +63,8 @@
*/
/* Values below are optimized for requests containing about 1.5 kB of data */
-#define CESA_SA_DESC_PER_REQ 2
-#define CESA_TDMA_DESC_PER_REQ 8
+#define CESA_SA_DESC_PER_REQ (2 * 3) /* 4KB, not 1.5kB */
+#define CESA_TDMA_DESC_PER_REQ (8 * 3) /* 4KB, not 1.5kB */
#define CESA_SA_DESCRIPTORS (CESA_SA_DESC_PER_REQ * CESA_REQUESTS)
#define CESA_TDMA_DESCRIPTORS (CESA_TDMA_DESC_PER_REQ *
CESA_REQUESTS)
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-arm
mailing list