Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Mar 2018 20:06:04 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-arm@FreeBSD.org
Subject:   [Bug 226682] ARMADA38X: Running out of CESA TDMA descriptors for disk I/O on GELI SSD
Message-ID:  <bug-226682-7@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D226682

            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@FreeBSD.org
          Reporter: chris@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 reporte=
d on
the console/dmesg about running out of TMDA descriptors.

Looking at sys/dev/cesa/cesa.h, the comments seem to focus on network buffe=
rs
with a maximum size of 1500 bytes while SSD disk I/O in my case would invol=
ve
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 ~200M=
B/s
without running out of TDMA descriptors.

There might be better ways to do this but the "diff" below most certainly f=
ixed
my issue.

Index: sys/dev/cesa/cesa.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- 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_REQUES=
TS)
 #define CESA_TDMA_DESCRIPTORS          (CESA_TDMA_DESC_PER_REQ *
CESA_REQUESTS)

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-226682-7>