From: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx> Date: Wed, 6 Apr 2016 15:15:19 -0300 > Currently on high rate SCTP streams the heartbeat timer refresh can > consume quite a lot of resources as timer updates are costly and it > contains a random factor, which a) is also costly and b) invalidates > mod_timer() optimization for not editing a timer to the same value. > It may even cause the timer to be slightly advanced, for no good reason. > > As suggested by David Laight this patch now removes this timer update > from hot path by leaving the timer on and re-evaluating upon its > expiration if the heartbeat is still needed or not, similarly to what is > done for TCP. If it's not needed anymore the timer is re-scheduled to > the new timeout, considering the time already elapsed. > > For this, we now record the last tx timestamp per transport, updated in > the same spots as hb timer was restarted on tx. Also split up > sctp_transport_reset_timers into sctp_transport_reset_t3_rtx and > sctp_transport_reset_hb_timer, so we can re-arm T3 without re-arming the > heartbeat one. > > On loopback with MTU of 65535 and data chunks with 1636, so that we > have a considerable amount of chunks without stressing system calls, > netperf -t SCTP_STREAM -l 30, perf looked like this before: . .. > And after this patch, now with netperf -l 60: ... > Throughput-wise, from 6800mbps without the patch to 7050mbps with it, > ~3.7%. > > Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx> Applied, thanks Marcelo. -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html