mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 16:54:20 +08:00
tcp: tcp_mark_head_lost() optimization
It will be a bit more expensive to get the head of rtx queue once rtx queue is converted to an rb-tree. We can avoid this extra cost in case tp->lost_skb_hint is set. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4e8cc22803
commit
5e76ee4b8e
@ -2207,12 +2207,12 @@ static void tcp_mark_head_lost(struct sock *sk, int packets, int mark_head)
|
||||
const u32 loss_high = tcp_is_sack(tp) ? tp->snd_nxt : tp->high_seq;
|
||||
|
||||
WARN_ON(packets > tp->packets_out);
|
||||
if (tp->lost_skb_hint) {
|
||||
skb = tp->lost_skb_hint;
|
||||
cnt = tp->lost_cnt_hint;
|
||||
skb = tp->lost_skb_hint;
|
||||
if (skb) {
|
||||
/* Head already handled? */
|
||||
if (mark_head && skb != tcp_write_queue_head(sk))
|
||||
if (mark_head && after(TCP_SKB_CB(skb)->seq, tp->snd_una))
|
||||
return;
|
||||
cnt = tp->lost_cnt_hint;
|
||||
} else {
|
||||
skb = tcp_write_queue_head(sk);
|
||||
cnt = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user