Performance: workaround Linux kernel bug
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 9 May 2020 14:04:17 +0000 (15:04 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 9 May 2020 14:04:17 +0000 (15:04 +0100)
src/src/smtp_out.c

index 6f7fb85c11a28da11d59de583d0b0ea1b546a43c..86c3e412775cc53d3feed2f5112864257af69d13 100644 (file)
@@ -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
     }
   }