diff options
author | Alexander Aring <aahringo@redhat.com> | 2020-07-27 16:13:37 +0300 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2020-08-06 18:30:54 +0300 |
commit | ba3ab3ca68caafb7700c4abae357b7fb7538df11 (patch) | |
tree | fc015a963ac2faacbb524eb66ea088d7a7cf8a53 /fs/buffer.c | |
parent | 0ea47e4d2109efd61e9949d014b37ea835f20861 (diff) | |
download | linux-ba3ab3ca68caafb7700c4abae357b7fb7538df11.tar.xz |
fs: dlm: change handling of reconnects
This patch changes the handling of reconnects. At first we only close
the connection related to the communication failure. If we get a new
connection for an already existing connection we close the existing
connection and take the new one.
This patch improves significantly the stability of tcp connections while
running "tcpkill -9 -i $IFACE port 21064" while generating a lot of dlm
messages e.g. on a gfs2 mount with many files. My test setup shows that a
deadlock is "more" unlikely. Before this patch I wasn't able to get
not a deadlock after 5 seconds. After this patch my observation is
that it's more likely to survive after 5 seconds and more, but still a
deadlock occurs after certain time. My guess is that there are still
"segments" inside the tcp writequeue or retransmit queue which get dropped
when receiving a tcp reset [1]. Hard to reproduce because the right message
need to be inside these queues, which might even be in the 5 first seconds
with this patch.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/ipv4/tcp_input.c?h=v5.8-rc6#n4122
Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Diffstat (limited to 'fs/buffer.c')
0 files changed, 0 insertions, 0 deletions