]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit85766c125cb17b02c2faf7e21ba5864a3ecc026d
tree91f896eae2a68983572882e97082a3771ec7aed3
parent096df1679b818303cd740923167de92ae01f173f
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