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 <davem@davemloft.net>
This commit is contained in:
@@ -400,7 +400,7 @@ enum rxrpc_tx_point {
|
||||
EM(rxrpc_cong_begin_retransmission, " Retrans") \
|
||||
EM(rxrpc_cong_cleared_nacks, " Cleared") \
|
||||
EM(rxrpc_cong_new_low_nack, " NewLowN") \
|
||||
EM(rxrpc_cong_no_change, "") \
|
||||
EM(rxrpc_cong_no_change, " -") \
|
||||
EM(rxrpc_cong_progress, " Progres") \
|
||||
EM(rxrpc_cong_retransmit_again, " ReTxAgn") \
|
||||
EM(rxrpc_cong_rtt_window_end, " RttWinE") \
|
||||
|
||||
@@ -253,7 +253,7 @@ static void rxrpc_resend(struct rxrpc_call *call, unsigned long now_j)
|
||||
* confuse things
|
||||
*/
|
||||
annotation &= ~RXRPC_TX_ANNO_MASK;
|
||||
annotation |= RXRPC_TX_ANNO_RESENT;
|
||||
annotation |= RXRPC_TX_ANNO_UNACK | RXRPC_TX_ANNO_RESENT;
|
||||
call->rxtx_annotations[ix] = annotation;
|
||||
|
||||
skb = call->rxtx_buffer[ix];
|
||||
|
||||
+3
-4
@@ -722,13 +722,12 @@ static void rxrpc_input_ackinfo(struct rxrpc_call *call, struct sk_buff *skb,
|
||||
ntohl(ackinfo->rxMTU), ntohl(ackinfo->maxMTU),
|
||||
rwind, ntohl(ackinfo->jumbo_max));
|
||||
|
||||
if (rwind > RXRPC_RXTX_BUFF_SIZE - 1)
|
||||
rwind = RXRPC_RXTX_BUFF_SIZE - 1;
|
||||
if (call->tx_winsize != rwind) {
|
||||
if (rwind > RXRPC_RXTX_BUFF_SIZE - 1)
|
||||
rwind = RXRPC_RXTX_BUFF_SIZE - 1;
|
||||
if (rwind > call->tx_winsize)
|
||||
wake = true;
|
||||
trace_rxrpc_rx_rwind_change(call, sp->hdr.serial,
|
||||
ntohl(ackinfo->rwind), wake);
|
||||
trace_rxrpc_rx_rwind_change(call, sp->hdr.serial, rwind, wake);
|
||||
call->tx_winsize = rwind;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user