Skip to content

Commit 2996cbd

Browse files
committed
Merge tag 'rxrpc-fixes-20200618' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
David Howells says: ==================== rxrpc: Performance drop fix and other fixes Here are three fixes for rxrpc: (1) Fix a trace symbol mapping. It doesn't seem to let you map to "". (2) Fix the handling of the remote receive window size when it increases beyond the size we can support for our transmit window. (3) Fix a performance drop caused by retransmitted packets being accidentally marked as already ACK'd. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents cc26c9f + 02c28df commit 2996cbd

File tree

3 files changed

+5
-6
lines changed

3 files changed

+5
-6
lines changed

include/trace/events/rxrpc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ enum rxrpc_tx_point {
400400
EM(rxrpc_cong_begin_retransmission, " Retrans") \
401401
EM(rxrpc_cong_cleared_nacks, " Cleared") \
402402
EM(rxrpc_cong_new_low_nack, " NewLowN") \
403-
EM(rxrpc_cong_no_change, "") \
403+
EM(rxrpc_cong_no_change, " -") \
404404
EM(rxrpc_cong_progress, " Progres") \
405405
EM(rxrpc_cong_retransmit_again, " ReTxAgn") \
406406
EM(rxrpc_cong_rtt_window_end, " RttWinE") \

net/rxrpc/call_event.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ static void rxrpc_resend(struct rxrpc_call *call, unsigned long now_j)
253253
* confuse things
254254
*/
255255
annotation &= ~RXRPC_TX_ANNO_MASK;
256-
annotation |= RXRPC_TX_ANNO_RESENT;
256+
annotation |= RXRPC_TX_ANNO_UNACK | RXRPC_TX_ANNO_RESENT;
257257
call->rxtx_annotations[ix] = annotation;
258258

259259
skb = call->rxtx_buffer[ix];

net/rxrpc/input.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -722,13 +722,12 @@ static void rxrpc_input_ackinfo(struct rxrpc_call *call, struct sk_buff *skb,
722722
ntohl(ackinfo->rxMTU), ntohl(ackinfo->maxMTU),
723723
rwind, ntohl(ackinfo->jumbo_max));
724724

725+
if (rwind > RXRPC_RXTX_BUFF_SIZE - 1)
726+
rwind = RXRPC_RXTX_BUFF_SIZE - 1;
725727
if (call->tx_winsize != rwind) {
726-
if (rwind > RXRPC_RXTX_BUFF_SIZE - 1)
727-
rwind = RXRPC_RXTX_BUFF_SIZE - 1;
728728
if (rwind > call->tx_winsize)
729729
wake = true;
730-
trace_rxrpc_rx_rwind_change(call, sp->hdr.serial,
731-
ntohl(ackinfo->rwind), wake);
730+
trace_rxrpc_rx_rwind_change(call, sp->hdr.serial, rwind, wake);
732731
call->tx_winsize = rwind;
733732
}
734733

0 commit comments

Comments
 (0)