diff options
| author | David Howells <dhowells@redhat.com> | 2020-04-28 22:06:54 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-05-27 17:37:46 +0200 |
| commit | db7a934a02236c63eaa057cc768e700f8ac0644d (patch) | |
| tree | 6378f1c78c1b335c140253e97ec513e8f5f95a41 /net | |
| parent | d268f8ddbb51851b58928862dcffd83f5c1120dc (diff) | |
| download | linux-db7a934a02236c63eaa057cc768e700f8ac0644d.tar.gz linux-db7a934a02236c63eaa057cc768e700f8ac0644d.tar.bz2 linux-db7a934a02236c63eaa057cc768e700f8ac0644d.zip | |
rxrpc: Trace discarded ACKs
[ Upstream commit d1f129470e6cb79b8b97fecd12689f6eb49e27fe ]
Add a tracepoint to track received ACKs that are discarded due to being
outside of the Tx window.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net')
| -rw-r--r-- | net/rxrpc/input.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/net/rxrpc/input.c b/net/rxrpc/input.c index d9beb28fc32f..4cc3b54ebc49 100644 --- a/net/rxrpc/input.c +++ b/net/rxrpc/input.c @@ -879,8 +879,12 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb, /* Discard any out-of-order or duplicate ACKs (outside lock). */ if (before(first_soft_ack, call->ackr_first_seq) || - before(prev_pkt, call->ackr_prev_seq)) + before(prev_pkt, call->ackr_prev_seq)) { + trace_rxrpc_rx_discard_ack(call->debug_id, sp->hdr.serial, + first_soft_ack, call->ackr_first_seq, + prev_pkt, call->ackr_prev_seq); return; + } buf.info.rxMTU = 0; ioffset = offset + nr_acks + 3; @@ -892,8 +896,12 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb, /* Discard any out-of-order or duplicate ACKs (inside lock). */ if (before(first_soft_ack, call->ackr_first_seq) || - before(prev_pkt, call->ackr_prev_seq)) + before(prev_pkt, call->ackr_prev_seq)) { + trace_rxrpc_rx_discard_ack(call->debug_id, sp->hdr.serial, + first_soft_ack, call->ackr_first_seq, + prev_pkt, call->ackr_prev_seq); goto out; + } call->acks_latest_ts = skb->tstamp; call->acks_latest = sp->hdr.serial; |
