summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Kou <qdkevin.kou@gmail.com>2019-12-27 13:11:16 +0000
committerDavid S. Miller <davem@davemloft.net>2019-12-30 20:33:05 -0800
commitf398efc14a9277b55defff71f59a46fdf13c713f (patch)
tree734bef8d3a81a1c55ad5c7736973a17bb7bd1259
parent9010ef57592c01a20cc3547b64121b67f5949704 (diff)
sctp: add enabled check for path tracepoint loop.
sctp_outq_sack is the main function handles SACK, it is called very frequently. As the commit "move trace_sctp_probe_path into sctp_outq_sack" added below code to this function, sctp tracepoint is disabled most of time, but the loop of transport list will be always called even though the tracepoint is disabled, this is unnecessary. + /* SCTP path tracepoint for congestion control debugging. */ + list_for_each_entry(transport, transport_list, transports) { + trace_sctp_probe_path(transport, asoc); + } This patch is to add tracepoint enabled check at outside of the loop of transport list, and avoid traversing the loop when trace is disabled, it is a small optimization. Signed-off-by: Kevin Kou <qdkevin.kou@gmail.com> Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/sctp/outqueue.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
index 6b0b3bad4daa..577e3bc4ee6f 100644
--- a/net/sctp/outqueue.c
+++ b/net/sctp/outqueue.c
@@ -1240,8 +1240,9 @@ int sctp_outq_sack(struct sctp_outq *q, struct sctp_chunk *chunk)
transport_list = &asoc->peer.transport_addr_list;
/* SCTP path tracepoint for congestion control debugging. */
- list_for_each_entry(transport, transport_list, transports) {
- trace_sctp_probe_path(transport, asoc);
+ if (trace_sctp_probe_path_enabled()) {
+ list_for_each_entry(transport, transport_list, transports)
+ trace_sctp_probe_path(transport, asoc);
}
sack_ctsn = ntohl(sack->cum_tsn_ack);