diff options
author | Alexander Aring <aahringo@redhat.com> | 2021-08-18 22:27:13 +0200 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2021-08-19 18:33:03 +0200 |
commit | b97f85259fca5accc2cd5f7c4f42fa0dd8efda48 (patch) | |
tree | 91f896eae2a68983572882e97082a3771ec7aed3 /fs/dlm/lowcomms.h | |
parent | fs: dlm: move receive loop into receive handler (diff) | |
download | linux-b97f85259fca5accc2cd5f7c4f42fa0dd8efda48.tar.xz linux-b97f85259fca5accc2cd5f7c4f42fa0dd8efda48.zip |
fs: dlm: implement delayed ack handling
This patch changes that we don't ack each message. Lowcomms will take
care about to send an ack back after a bulk of messages was processed.
Currently it's only when the whole receive buffer was processed, there
might better positions to send an ack back but only the lowcomms
implementation know when there are more data to receive. This patch has
also disadvantages that we might retransmit more on errors, however this
is a very rare case.
Tested with make_panic on gfs2 with three nodes by running:
trace-cmd record -p function -l 'dlm_send_ack' sleep 100
and
trace-cmd report | wc -l
Before patch:
- 20548
- 21376
- 21398
After patch:
- 18338
- 20679
- 19949
Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Diffstat (limited to 'fs/dlm/lowcomms.h')
-rw-r--r-- | fs/dlm/lowcomms.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/dlm/lowcomms.h b/fs/dlm/lowcomms.h index aaae7115c00d..4ccae07cf005 100644 --- a/fs/dlm/lowcomms.h +++ b/fs/dlm/lowcomms.h @@ -46,6 +46,7 @@ int dlm_lowcomms_resend_msg(struct dlm_msg *msg); int dlm_lowcomms_connect_node(int nodeid); int dlm_lowcomms_nodes_set_mark(int nodeid, unsigned int mark); int dlm_lowcomms_addr(int nodeid, struct sockaddr_storage *addr, int len); +void dlm_midcomms_receive_done(int nodeid); #endif /* __LOWCOMMS_DOT_H__ */ |