mirror of
https://github.com/adulau/aha.git
synced 2024-12-29 04:06:22 +00:00
[TCP]: Uninline tcp_is_cwnd_limited
net/ipv4/tcp_cong.c: tcp_reno_cong_avoid | -65 1 function changed, 65 bytes removed, diff: -65 net/ipv4/arp.c: arp_ignore | -5 1 function changed, 5 bytes removed, diff: -5 net/ipv4/tcp_bic.c: bictcp_cong_avoid | -57 1 function changed, 57 bytes removed, diff: -57 net/ipv4/tcp_cubic.c: bictcp_cong_avoid | -61 1 function changed, 61 bytes removed, diff: -61 net/ipv4/tcp_highspeed.c: hstcp_cong_avoid | -63 1 function changed, 63 bytes removed, diff: -63 net/ipv4/tcp_hybla.c: hybla_cong_avoid | -85 1 function changed, 85 bytes removed, diff: -85 net/ipv4/tcp_htcp.c: htcp_cong_avoid | -57 1 function changed, 57 bytes removed, diff: -57 net/ipv4/tcp_veno.c: tcp_veno_cong_avoid | -52 1 function changed, 52 bytes removed, diff: -52 net/ipv4/tcp_scalable.c: tcp_scalable_cong_avoid | -61 1 function changed, 61 bytes removed, diff: -61 net/ipv4/tcp_yeah.c: tcp_yeah_cong_avoid | -75 1 function changed, 75 bytes removed, diff: -75 net/ipv4/tcp_illinois.c: tcp_illinois_cong_avoid | -54 1 function changed, 54 bytes removed, diff: -54 net/dccp/ccids/ccid3.c: ccid3_update_send_interval | -7 ccid3_hc_tx_packet_recv | +7 2 functions changed, 7 bytes added, 7 bytes removed, diff: +0 net/ipv4/tcp_cong.c: tcp_is_cwnd_limited | +88 1 function changed, 88 bytes added, diff: +88 built-in.o: 14 functions changed, 95 bytes added, 642 bytes removed, diff: -547 ...Again some gcc artifacts visible as well. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
490d504693
commit
cea14e0ed6
2 changed files with 22 additions and 21 deletions
|
@ -786,27 +786,7 @@ static inline u32 tcp_wnd_end(const struct tcp_sock *tp)
|
|||
{
|
||||
return tp->snd_una + tp->snd_wnd;
|
||||
}
|
||||
|
||||
/* RFC2861 Check whether we are limited by application or congestion window
|
||||
* This is the inverse of cwnd check in tcp_tso_should_defer
|
||||
*/
|
||||
static inline int tcp_is_cwnd_limited(const struct sock *sk, u32 in_flight)
|
||||
{
|
||||
const struct tcp_sock *tp = tcp_sk(sk);
|
||||
u32 left;
|
||||
|
||||
if (in_flight >= tp->snd_cwnd)
|
||||
return 1;
|
||||
|
||||
if (!sk_can_gso(sk))
|
||||
return 0;
|
||||
|
||||
left = tp->snd_cwnd - in_flight;
|
||||
if (sysctl_tcp_tso_win_divisor)
|
||||
return left * sysctl_tcp_tso_win_divisor < tp->snd_cwnd;
|
||||
else
|
||||
return left <= tcp_max_burst(tp);
|
||||
}
|
||||
extern int tcp_is_cwnd_limited(const struct sock *sk, u32 in_flight);
|
||||
|
||||
static inline void tcp_minshall_update(struct tcp_sock *tp, unsigned int mss,
|
||||
const struct sk_buff *skb)
|
||||
|
|
|
@ -274,6 +274,27 @@ int tcp_set_congestion_control(struct sock *sk, const char *name)
|
|||
return err;
|
||||
}
|
||||
|
||||
/* RFC2861 Check whether we are limited by application or congestion window
|
||||
* This is the inverse of cwnd check in tcp_tso_should_defer
|
||||
*/
|
||||
int tcp_is_cwnd_limited(const struct sock *sk, u32 in_flight)
|
||||
{
|
||||
const struct tcp_sock *tp = tcp_sk(sk);
|
||||
u32 left;
|
||||
|
||||
if (in_flight >= tp->snd_cwnd)
|
||||
return 1;
|
||||
|
||||
if (!sk_can_gso(sk))
|
||||
return 0;
|
||||
|
||||
left = tp->snd_cwnd - in_flight;
|
||||
if (sysctl_tcp_tso_win_divisor)
|
||||
return left * sysctl_tcp_tso_win_divisor < tp->snd_cwnd;
|
||||
else
|
||||
return left <= tcp_max_burst(tp);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(tcp_is_cwnd_limited);
|
||||
|
||||
/*
|
||||
* Slow start is used when congestion window is less than slow start
|
||||
|
|
Loading…
Reference in a new issue