[exim-cvs] Performance: workaround Linux kernel bug

Top Page
Delete this message
Reply to this message
Author: Exim Git Commits Mailing List
Date:  
To: exim-cvs
Subject: [exim-cvs] Performance: workaround Linux kernel bug
Gitweb: https://git.exim.org/exim.git/commitdiff/68f71b94cc10f8b0453597d0f92b4bd7d995eeef
Commit:     68f71b94cc10f8b0453597d0f92b4bd7d995eeef
Parent:     83e8da8c07f783c7d677166940be3fc9b3f7d0ab
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Sat May 9 15:04:17 2020 +0100
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Sat May 9 15:04:17 2020 +0100


    Performance: workaround Linux kernel bug
---
 src/src/smtp_out.c | 10 ++++++++++
 1 file changed, 10 insertions(+)


diff --git a/src/src/smtp_out.c b/src/src/smtp_out.c
index 6f7fb85..86c3e41 100644
--- a/src/src/smtp_out.c
+++ b/src/src/smtp_out.c
@@ -509,6 +509,16 @@ else
           0
 #endif
          );
+
+#if defined(__linux__)
+    /* This is a workaround for a current linux kernel bug: as of
+    5.6.8-200.fc31.x86_64  small (<MSS) writes get delayed by about 200ms,
+    This is despite NODELAY being active.
+    https://bugzilla.redhat.com/show_bug.cgi?id=1803806 */
+
+    if (!more)
+      setsockopt(outblock->cctx->sock, IPPROTO_TCP, TCP_CORK, &off, sizeof(off));
+#endif
     }
   }