On Thu, Jan 17, 2019 at 11:23 AM Eric Dumazet <eduma...@google.com> wrote:
>
> tcp_create_openreq_child() is essentially cloning a listener, then
> must initialize some fields that can not be inherited.
>
> Listeners are either fresh sockets, or sockets that came through
> tcp_disconnect() after a session that dirtied many fields.
>
> By moving code to tcp_disconnect(), we can shorten time taken
> to create a clone, since tcp_disconnect() operation is very
> unlikely.
>
> Eric Dumazet (11):
>   tcp: do not set snd_ssthresh in tcp_create_openreq_child()
>   tcp: move icsk_rto init to tcp_disconnect()
>   tcp: do not clear packets_out in tcp_create_openreq_child()
>   tcp: do not clear srtt_us in tcp_create_openreq_child
>   tcp: move mdev_us init to tcp_disconnect()
>   tcp: move snd_cwnd & snd_cwnd_cnt init to tcp_disconnect()
>   tcp: do not clear urg_data in tcp_create_openreq_child
>   tcp: move retrans_out,sacked_out,tlp_high_seq,last_oow_ack_time init
>     to tcp_disconnect()
>   tcp: move app_limited init to tcp_disconnect()
>   tcp: move tp->rack init to tcp_disconnect()
>   tcp: move rx_opt & syn_data_acked init to tcp_disconnect()
>
>  net/ipv4/tcp.c           | 21 ++++++++++++++++++++-
>  net/ipv4/tcp_minisocks.c | 34 ----------------------------------
>  2 files changed, 20 insertions(+), 35 deletions(-)
>
> --
Entire patch set looks great to me!

Acked-by: Yuchung Cheng <ych...@google.com>

> 2.20.1.321.g9e740568ce-goog
>

Reply via email to