And I think we should be doing test on:
commit a6c2f79287 ("sctp: implement prsctp TTL policy") (the bisected one)
and
commit 826d253d57 ("sctp: add SCTP_PR_ASSOC_STATUS on sctp sockopt") (its
immediate parent)
instead of Linus' master HEAD to avoid other factors.
The test result shows they are almost same:
826d253d57
=========================
[root@localhost lxin]# sysctl -w net.sctp.prsctp_enable=1
net.sctp.prsctp_enable = 1
15484.93
15557.69
15395.61
[root@localhost lxin]# sysctl -w net.sctp.prsctp_enable=0
net.sctp.prsctp_enable = 0
15369.83
14419.81
15202.59
a6c2f79287
===========
[root@localhost lxin]# sysctl -w net.sctp.prsctp_enable=1
net.sctp.prsctp_enable = 1
15198.00
15567.87
16092.55
[root@localhost lxin]# sysctl -w net.sctp.prsctp_enable=0
net.sctp.prsctp_enable = 0
15624.70
15021.85
15390.62
You can also review the commit a6c2f79287 if you have time:
It just added some 'if()' in the sending path if we don't use
any policy . In our test, no policy was used, I even added
log in kernel to check if some unexpected policy is enabled.
But still no.
If you can reproduce this issue stably, I suggest you can reverse
some code of that patch (it's a really a small patch) and re-build
the kernel, then try.
With that, you can locate which line exactly triggered this issue.
Thanks.