forked from Minki/linux
tcp: stamp SCM_TSTAMP_ACK later in tcp_clean_rtx_queue()
Currently tp->delivered is updated with sacked packets but not cumulatively acked when SCP_TSTAMP_ACK is timestamped. This patch moves a tcp_ack_tstamp() call in tcp_clean_rtx_queue() to later in the loop so that when a skb is fully acked OPT_STATS of SCM_TSTAMP_ACK will include the current skb in the delivered count. When not fully acked tcp_ack_tstamp() is a no-op and there is no change in behavior. Signed-off-by: Yousuk Seung <ysseung@google.com> Signed-off-by: Yuchung Cheng <ycheng@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Acked-by: Neal Cardwell <ncardwell@google.com> Acked-by: Soheil Hassas Yeganeh <soheil@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b08866f42a
commit
fdb7eb21dd
@ -3078,8 +3078,6 @@ static int tcp_clean_rtx_queue(struct sock *sk, u32 prior_fack,
|
||||
u8 sacked = scb->sacked;
|
||||
u32 acked_pcount;
|
||||
|
||||
tcp_ack_tstamp(sk, skb, prior_snd_una);
|
||||
|
||||
/* Determine how many packets and what bytes were acked, tso and else */
|
||||
if (after(scb->end_seq, tp->snd_una)) {
|
||||
if (tcp_skb_pcount(skb) == 1 ||
|
||||
@ -3143,6 +3141,8 @@ static int tcp_clean_rtx_queue(struct sock *sk, u32 prior_fack,
|
||||
if (!fully_acked)
|
||||
break;
|
||||
|
||||
tcp_ack_tstamp(sk, skb, prior_snd_una);
|
||||
|
||||
next = skb_rb_next(skb);
|
||||
if (unlikely(skb == tp->retransmit_skb_hint))
|
||||
tp->retransmit_skb_hint = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user