mirror of
https://github.com/torvalds/linux.git
synced 2024-12-14 23:25:54 +00:00
rxrpc fixes
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEqG5UsNXhtOCrfGQP+7dXa6fLC2sFAl7rGj4ACgkQ+7dXa6fL C2sCVw/9ERq99VoSjVGfO+hiU9P0XuqKMPLMIimN+4CiMHqoLPgvZu77ZZmpjpic WVnMyBkk8/9wumZxiOLtwqTqLf0AYW92N9KW/RGKyH0O/ZGoAVAzmpHwBftd75Af Wbv5aBH4G0GzdJ8kfByKZwypHyyldJ3RVX3sbLEDFVourDz8odOWB/OzBfXhmMIb ne9Y7373npEixuEEgbFj5RjAz5xKsaXwtjaAmAvMsxK1UyiZ9PeW8QKmrCpUZyMd s23d188NmyzxZvRtgtdYrcBpS/JrUHG8Ngxxugu1TmVi/WmAYRL6A72H66swXNR5 vadU4KoG6Z4IDpUMjIbnexYBSDTPe00CG2xD6HLs2jgGffT+vRuON3MINn9iQEo3 +jZ10nauJlDTVJdaFtEE8wjB2Q7QfLO9Jbfd3xI6/i/636+27SDgaKnfYN7yf67S 6LDSV65ENk3SxRndR/SEXAhmFw1ipqZmV7ySva1OzGRO9etQTFb9LyfBOkauWSWl 7BCnC7ONEFkjOfwWGu1RnsWHd5TBechapgAoUcefp1yt+ieh7i51nmfDaNLyxLEj uqZBzfW6EllLcHpIfjDdtKzpRJhY++4l29GflOPaTHqJvasK8p+3+EyGEVCICEx0 qjKxVDH0ZdX6D2jwQWDdiH4IWGZXNi55nnyzRspriIDoPUKMjY8= =A5F2 -----END PGP SIGNATURE----- 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:
commit
2996cbd532
@ -400,7 +400,7 @@ enum rxrpc_tx_point {
|
|||||||
EM(rxrpc_cong_begin_retransmission, " Retrans") \
|
EM(rxrpc_cong_begin_retransmission, " Retrans") \
|
||||||
EM(rxrpc_cong_cleared_nacks, " Cleared") \
|
EM(rxrpc_cong_cleared_nacks, " Cleared") \
|
||||||
EM(rxrpc_cong_new_low_nack, " NewLowN") \
|
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_progress, " Progres") \
|
||||||
EM(rxrpc_cong_retransmit_again, " ReTxAgn") \
|
EM(rxrpc_cong_retransmit_again, " ReTxAgn") \
|
||||||
EM(rxrpc_cong_rtt_window_end, " RttWinE") \
|
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
|
* confuse things
|
||||||
*/
|
*/
|
||||||
annotation &= ~RXRPC_TX_ANNO_MASK;
|
annotation &= ~RXRPC_TX_ANNO_MASK;
|
||||||
annotation |= RXRPC_TX_ANNO_RESENT;
|
annotation |= RXRPC_TX_ANNO_UNACK | RXRPC_TX_ANNO_RESENT;
|
||||||
call->rxtx_annotations[ix] = annotation;
|
call->rxtx_annotations[ix] = annotation;
|
||||||
|
|
||||||
skb = call->rxtx_buffer[ix];
|
skb = call->rxtx_buffer[ix];
|
||||||
|
@ -722,13 +722,12 @@ static void rxrpc_input_ackinfo(struct rxrpc_call *call, struct sk_buff *skb,
|
|||||||
ntohl(ackinfo->rxMTU), ntohl(ackinfo->maxMTU),
|
ntohl(ackinfo->rxMTU), ntohl(ackinfo->maxMTU),
|
||||||
rwind, ntohl(ackinfo->jumbo_max));
|
rwind, ntohl(ackinfo->jumbo_max));
|
||||||
|
|
||||||
|
if (rwind > RXRPC_RXTX_BUFF_SIZE - 1)
|
||||||
|
rwind = RXRPC_RXTX_BUFF_SIZE - 1;
|
||||||
if (call->tx_winsize != rwind) {
|
if (call->tx_winsize != rwind) {
|
||||||
if (rwind > RXRPC_RXTX_BUFF_SIZE - 1)
|
|
||||||
rwind = RXRPC_RXTX_BUFF_SIZE - 1;
|
|
||||||
if (rwind > call->tx_winsize)
|
if (rwind > call->tx_winsize)
|
||||||
wake = true;
|
wake = true;
|
||||||
trace_rxrpc_rx_rwind_change(call, sp->hdr.serial,
|
trace_rxrpc_rx_rwind_change(call, sp->hdr.serial, rwind, wake);
|
||||||
ntohl(ackinfo->rwind), wake);
|
|
||||||
call->tx_winsize = rwind;
|
call->tx_winsize = rwind;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user