提交 123ff122 编写于 作者: L Lars Ellenberg 提交者: Philipp Reisner

drbd: trigger tcp_push_pending_frames() for PING and PING_ACK

This should reduce latency for such in-DRBD-protocol "pings",
and may help reduce spurious disconnect/reconnect cycles due to
 "PingAck did not arrive in time."
Signed-off-by: NPhilipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: NLars Ellenberg <lars.ellenberg@linbit.com>
上级 66ce6dbc
...@@ -662,6 +662,11 @@ static int __send_command(struct drbd_connection *connection, int vnr, ...@@ -662,6 +662,11 @@ static int __send_command(struct drbd_connection *connection, int vnr,
msg_flags); msg_flags);
if (data && !err) if (data && !err)
err = drbd_send_all(connection, sock->socket, data, size, 0); err = drbd_send_all(connection, sock->socket, data, size, 0);
/* DRBD protocol "pings" are latency critical.
* This is supposed to trigger tcp_push_pending_frames() */
if (!err && (cmd == P_PING || cmd == P_PING_ACK))
drbd_tcp_nodelay(sock->socket);
return err; return err;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册