drbd: improve network latency, TCP_QUICKACK
authorLars Ellenberg <lars.ellenberg@linbit.com>
Tue, 25 May 2010 12:23:57 +0000 (14:23 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Tue, 1 Jun 2010 09:12:27 +0000 (11:12 +0200)
On Thu, Apr 29, 2010 at 04:00:50PM -0400, Eduard.Guzovsky@stratus.com
 wrote on drbd-dev@lists.linbit.com
 Subject: [Drbd-dev] DRBD small synchronous writes performance improvements

> 1. TCP_QUICKACK option is set incorrectly. The goal was force TCP to
> send and ACK as a  "one time" event.  Instead the code permanently sets
> connection in the QUICKACK mode.

He is right, we actually want to use an even val with TCP_QUICKACK.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
drivers/block/drbd/drbd_int.h

index c194348a46ed0833f58ffb3b0d40ab9cfd8be361..6d79a76ba597d672d49f2f517d051d1289c80898 100644 (file)
@@ -1540,7 +1540,7 @@ static inline void drbd_tcp_nodelay(struct socket *sock)
 
 static inline void drbd_tcp_quickack(struct socket *sock)
 {
-       int __user val = 1;
+       int __user val = 2;
        (void) drbd_setsockopt(sock, SOL_TCP, TCP_QUICKACK,
                        (char __user *)&val, sizeof(val));
 }