fs: dlm: implement delayed ack handling
authorAlexander Aring <aahringo@redhat.com>
Wed, 18 Aug 2021 20:27:13 +0000 (16:27 -0400)
committerDavid Teigland <teigland@redhat.com>
Thu, 19 Aug 2021 16:33:03 +0000 (11:33 -0500)
commitb97f85259fca5accc2cd5f7c4f42fa0dd8efda48
tree91f896eae2a68983572882e97082a3771ec7aed3
parent62699b3f0a62435fceb8debf295e90a5ea259e04
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>
fs/dlm/lowcomms.c
fs/dlm/lowcomms.h
fs/dlm/midcomms.c