提交 45f74359 编写于 作者: S Stanislav Fomichev 提交者: David S. Miller

tcp: remove unused min_cwnd member of tcp_congestion_ops

Commit 684bad11 "tcp: use PRR to reduce cwin in CWR state" removed all
calls to min_cwnd, so we can safely remove it.
Also, remove tcp_reno_min_cwnd because it was only used for min_cwnd.
Signed-off-by: NStanislav Fomichev <stfomichev@yandex-team.ru>
Acked-by: NYuchung Cheng <ycheng@google.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 f93f160b
...@@ -30,7 +30,7 @@ A congestion control mechanism can be registered through functions in ...@@ -30,7 +30,7 @@ A congestion control mechanism can be registered through functions in
tcp_cong.c. The functions used by the congestion control mechanism are tcp_cong.c. The functions used by the congestion control mechanism are
registered via passing a tcp_congestion_ops struct to registered via passing a tcp_congestion_ops struct to
tcp_register_congestion_control. As a minimum name, ssthresh, tcp_register_congestion_control. As a minimum name, ssthresh,
cong_avoid, min_cwnd must be valid. cong_avoid must be valid.
Private data for a congestion control mechanism is stored in tp->ca_priv. Private data for a congestion control mechanism is stored in tp->ca_priv.
tcp_ca(tp) returns a pointer to this space. This is preallocated space - it tcp_ca(tp) returns a pointer to this space. This is preallocated space - it
......
...@@ -791,8 +791,6 @@ struct tcp_congestion_ops { ...@@ -791,8 +791,6 @@ struct tcp_congestion_ops {
/* return slow start threshold (required) */ /* return slow start threshold (required) */
u32 (*ssthresh)(struct sock *sk); u32 (*ssthresh)(struct sock *sk);
/* lower bound for congestion window (optional) */
u32 (*min_cwnd)(const struct sock *sk);
/* do new cwnd calculation (required) */ /* do new cwnd calculation (required) */
void (*cong_avoid)(struct sock *sk, u32 ack, u32 acked, u32 in_flight); void (*cong_avoid)(struct sock *sk, u32 ack, u32 acked, u32 in_flight);
/* call before changing ca_state (optional) */ /* call before changing ca_state (optional) */
...@@ -827,7 +825,6 @@ void tcp_cong_avoid_ai(struct tcp_sock *tp, u32 w); ...@@ -827,7 +825,6 @@ void tcp_cong_avoid_ai(struct tcp_sock *tp, u32 w);
extern struct tcp_congestion_ops tcp_init_congestion_ops; extern struct tcp_congestion_ops tcp_init_congestion_ops;
u32 tcp_reno_ssthresh(struct sock *sk); u32 tcp_reno_ssthresh(struct sock *sk);
void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 acked, u32 in_flight); void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 acked, u32 in_flight);
u32 tcp_reno_min_cwnd(const struct sock *sk);
extern struct tcp_congestion_ops tcp_reno; extern struct tcp_congestion_ops tcp_reno;
static inline void tcp_set_ca_state(struct sock *sk, const u8 ca_state) static inline void tcp_set_ca_state(struct sock *sk, const u8 ca_state)
......
...@@ -362,21 +362,12 @@ u32 tcp_reno_ssthresh(struct sock *sk) ...@@ -362,21 +362,12 @@ u32 tcp_reno_ssthresh(struct sock *sk)
} }
EXPORT_SYMBOL_GPL(tcp_reno_ssthresh); EXPORT_SYMBOL_GPL(tcp_reno_ssthresh);
/* Lower bound on congestion window with halving. */
u32 tcp_reno_min_cwnd(const struct sock *sk)
{
const struct tcp_sock *tp = tcp_sk(sk);
return tp->snd_ssthresh/2;
}
EXPORT_SYMBOL_GPL(tcp_reno_min_cwnd);
struct tcp_congestion_ops tcp_reno = { struct tcp_congestion_ops tcp_reno = {
.flags = TCP_CONG_NON_RESTRICTED, .flags = TCP_CONG_NON_RESTRICTED,
.name = "reno", .name = "reno",
.owner = THIS_MODULE, .owner = THIS_MODULE,
.ssthresh = tcp_reno_ssthresh, .ssthresh = tcp_reno_ssthresh,
.cong_avoid = tcp_reno_cong_avoid, .cong_avoid = tcp_reno_cong_avoid,
.min_cwnd = tcp_reno_min_cwnd,
}; };
/* Initial congestion control used (until SYN) /* Initial congestion control used (until SYN)
...@@ -388,6 +379,5 @@ struct tcp_congestion_ops tcp_init_congestion_ops = { ...@@ -388,6 +379,5 @@ struct tcp_congestion_ops tcp_init_congestion_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.ssthresh = tcp_reno_ssthresh, .ssthresh = tcp_reno_ssthresh,
.cong_avoid = tcp_reno_cong_avoid, .cong_avoid = tcp_reno_cong_avoid,
.min_cwnd = tcp_reno_min_cwnd,
}; };
EXPORT_SYMBOL_GPL(tcp_init_congestion_ops); EXPORT_SYMBOL_GPL(tcp_init_congestion_ops);
...@@ -162,7 +162,6 @@ static struct tcp_congestion_ops tcp_highspeed __read_mostly = { ...@@ -162,7 +162,6 @@ static struct tcp_congestion_ops tcp_highspeed __read_mostly = {
.init = hstcp_init, .init = hstcp_init,
.ssthresh = hstcp_ssthresh, .ssthresh = hstcp_ssthresh,
.cong_avoid = hstcp_cong_avoid, .cong_avoid = hstcp_cong_avoid,
.min_cwnd = tcp_reno_min_cwnd,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "highspeed" .name = "highspeed"
......
...@@ -166,7 +166,6 @@ static void hybla_cong_avoid(struct sock *sk, u32 ack, u32 acked, ...@@ -166,7 +166,6 @@ static void hybla_cong_avoid(struct sock *sk, u32 ack, u32 acked,
static struct tcp_congestion_ops tcp_hybla __read_mostly = { static struct tcp_congestion_ops tcp_hybla __read_mostly = {
.init = hybla_init, .init = hybla_init,
.ssthresh = tcp_reno_ssthresh, .ssthresh = tcp_reno_ssthresh,
.min_cwnd = tcp_reno_min_cwnd,
.cong_avoid = hybla_cong_avoid, .cong_avoid = hybla_cong_avoid,
.set_state = hybla_state, .set_state = hybla_state,
......
...@@ -328,7 +328,6 @@ static struct tcp_congestion_ops tcp_illinois __read_mostly = { ...@@ -328,7 +328,6 @@ static struct tcp_congestion_ops tcp_illinois __read_mostly = {
.flags = TCP_CONG_RTT_STAMP, .flags = TCP_CONG_RTT_STAMP,
.init = tcp_illinois_init, .init = tcp_illinois_init,
.ssthresh = tcp_illinois_ssthresh, .ssthresh = tcp_illinois_ssthresh,
.min_cwnd = tcp_reno_min_cwnd,
.cong_avoid = tcp_illinois_cong_avoid, .cong_avoid = tcp_illinois_cong_avoid,
.set_state = tcp_illinois_state, .set_state = tcp_illinois_state,
.get_info = tcp_illinois_info, .get_info = tcp_illinois_info,
......
...@@ -319,7 +319,6 @@ static struct tcp_congestion_ops tcp_lp __read_mostly = { ...@@ -319,7 +319,6 @@ static struct tcp_congestion_ops tcp_lp __read_mostly = {
.init = tcp_lp_init, .init = tcp_lp_init,
.ssthresh = tcp_reno_ssthresh, .ssthresh = tcp_reno_ssthresh,
.cong_avoid = tcp_lp_cong_avoid, .cong_avoid = tcp_lp_cong_avoid,
.min_cwnd = tcp_reno_min_cwnd,
.pkts_acked = tcp_lp_pkts_acked, .pkts_acked = tcp_lp_pkts_acked,
.owner = THIS_MODULE, .owner = THIS_MODULE,
......
...@@ -39,7 +39,6 @@ static u32 tcp_scalable_ssthresh(struct sock *sk) ...@@ -39,7 +39,6 @@ static u32 tcp_scalable_ssthresh(struct sock *sk)
static struct tcp_congestion_ops tcp_scalable __read_mostly = { static struct tcp_congestion_ops tcp_scalable __read_mostly = {
.ssthresh = tcp_scalable_ssthresh, .ssthresh = tcp_scalable_ssthresh,
.cong_avoid = tcp_scalable_cong_avoid, .cong_avoid = tcp_scalable_cong_avoid,
.min_cwnd = tcp_reno_min_cwnd,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "scalable", .name = "scalable",
......
...@@ -310,7 +310,6 @@ static struct tcp_congestion_ops tcp_vegas __read_mostly = { ...@@ -310,7 +310,6 @@ static struct tcp_congestion_ops tcp_vegas __read_mostly = {
.init = tcp_vegas_init, .init = tcp_vegas_init,
.ssthresh = tcp_reno_ssthresh, .ssthresh = tcp_reno_ssthresh,
.cong_avoid = tcp_vegas_cong_avoid, .cong_avoid = tcp_vegas_cong_avoid,
.min_cwnd = tcp_reno_min_cwnd,
.pkts_acked = tcp_vegas_pkts_acked, .pkts_acked = tcp_vegas_pkts_acked,
.set_state = tcp_vegas_state, .set_state = tcp_vegas_state,
.cwnd_event = tcp_vegas_cwnd_event, .cwnd_event = tcp_vegas_cwnd_event,
......
...@@ -276,7 +276,6 @@ static struct tcp_congestion_ops tcp_westwood __read_mostly = { ...@@ -276,7 +276,6 @@ static struct tcp_congestion_ops tcp_westwood __read_mostly = {
.init = tcp_westwood_init, .init = tcp_westwood_init,
.ssthresh = tcp_reno_ssthresh, .ssthresh = tcp_reno_ssthresh,
.cong_avoid = tcp_reno_cong_avoid, .cong_avoid = tcp_reno_cong_avoid,
.min_cwnd = tcp_westwood_bw_rttmin,
.cwnd_event = tcp_westwood_event, .cwnd_event = tcp_westwood_event,
.get_info = tcp_westwood_info, .get_info = tcp_westwood_info,
.pkts_acked = tcp_westwood_pkts_acked, .pkts_acked = tcp_westwood_pkts_acked,
......
...@@ -231,7 +231,6 @@ static struct tcp_congestion_ops tcp_yeah __read_mostly = { ...@@ -231,7 +231,6 @@ static struct tcp_congestion_ops tcp_yeah __read_mostly = {
.init = tcp_yeah_init, .init = tcp_yeah_init,
.ssthresh = tcp_yeah_ssthresh, .ssthresh = tcp_yeah_ssthresh,
.cong_avoid = tcp_yeah_cong_avoid, .cong_avoid = tcp_yeah_cong_avoid,
.min_cwnd = tcp_reno_min_cwnd,
.set_state = tcp_vegas_state, .set_state = tcp_vegas_state,
.cwnd_event = tcp_vegas_cwnd_event, .cwnd_event = tcp_vegas_cwnd_event,
.get_info = tcp_vegas_get_info, .get_info = tcp_vegas_get_info,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册