GNU Linux-libre 6.9-gnu
[releases.git] / Documentation / networking / net_cachelines / tcp_sock.rst
1 .. SPDX-License-Identifier: GPL-2.0
2 .. Copyright (C) 2023 Google LLC
3
4 =========================================
5 tcp_sock struct fast path usage breakdown
6 =========================================
7
8 Type                          Name                    fastpath_tx_access  fastpath_rx_access  Comments
9 ..struct                      ..tcp_sock                                                        
10 struct_inet_connection_sock   inet_conn                                                       
11 u16                           tcp_header_len          read_mostly         read_mostly         tcp_bound_to_half_wnd,tcp_current_mss(tx);tcp_rcv_established(rx)
12 u16                           gso_segs                read_mostly         -                   tcp_xmit_size_goal
13 __be32                        pred_flags              read_write          read_mostly         tcp_select_window(tx);tcp_rcv_established(rx)
14 u64                           bytes_received          -                   read_write          tcp_rcv_nxt_update(rx)
15 u32                           segs_in                 -                   read_write          tcp_v6_rcv(rx)
16 u32                           data_segs_in            -                   read_write          tcp_v6_rcv(rx)
17 u32                           rcv_nxt                 read_mostly         read_write          tcp_cleanup_rbuf,tcp_send_ack,tcp_inq_hint,tcp_transmit_skb,tcp_receive_window(tx);tcp_v6_do_rcv,tcp_rcv_established,tcp_data_queue,tcp_receive_window,tcp_rcv_nxt_update(write)(rx)
18 u32                           copied_seq              -                   read_mostly         tcp_cleanup_rbuf,tcp_rcv_space_adjust,tcp_inq_hint
19 u32                           rcv_wup                 -                   read_write          __tcp_cleanup_rbuf,tcp_receive_window,tcp_receive_established
20 u32                           snd_nxt                 read_write          read_mostly         tcp_rate_check_app_limited,__tcp_transmit_skb,tcp_event_new_data_sent(write)(tx);tcp_rcv_established,tcp_ack,tcp_clean_rtx_queue(rx)
21 u32                           segs_out                read_write          -                   __tcp_transmit_skb
22 u32                           data_segs_out           read_write          -                   __tcp_transmit_skb,tcp_update_skb_after_send
23 u64                           bytes_sent              read_write          -                   __tcp_transmit_skb
24 u64                           bytes_acked             -                   read_write          tcp_snd_una_update/tcp_ack
25 u32                           dsack_dups                                                      
26 u32                           snd_una                 read_mostly         read_write          tcp_wnd_end,tcp_urg_mode,tcp_minshall_check,tcp_cwnd_validate(tx);tcp_ack,tcp_may_update_window,tcp_clean_rtx_queue(write),tcp_ack_tstamp(rx)
27 u32                           snd_sml                 read_write          -                   tcp_minshall_check,tcp_minshall_update
28 u32                           rcv_tstamp              -                   read_mostly         tcp_ack
29 u32                           lsndtime                read_write          -                   tcp_slow_start_after_idle_check,tcp_event_data_sent
30 u32                           last_oow_ack_time                                               
31 u32                           compressed_ack_rcv_nxt                                          
32 u32                           tsoffset                read_mostly         read_mostly         tcp_established_options(tx);tcp_fast_parse_options(rx)
33 struct_list_head              tsq_node                -                   -                   
34 struct_list_head              tsorted_sent_queue      read_write          -                   tcp_update_skb_after_send
35 u32                           snd_wl1                 -                   read_mostly         tcp_may_update_window
36 u32                           snd_wnd                 read_mostly         read_mostly         tcp_wnd_end,tcp_tso_should_defer(tx);tcp_fast_path_on(rx)
37 u32                           max_window              read_mostly         -                   tcp_bound_to_half_wnd,forced_push
38 u32                           mss_cache               read_mostly         read_mostly         tcp_rate_check_app_limited,tcp_current_mss,tcp_sync_mss,tcp_sndbuf_expand,tcp_tso_should_defer(tx);tcp_update_pacing_rate,tcp_clean_rtx_queue(rx)
39 u32                           window_clamp            read_mostly         read_write          tcp_rcv_space_adjust,__tcp_select_window
40 u32                           rcv_ssthresh            read_mostly         -                   __tcp_select_window
41 u8                            scaling_ratio           read_mostly         read_mostly         tcp_win_from_space
42 struct                        tcp_rack                                                        
43 u16                           advmss                  -                   read_mostly         tcp_rcv_space_adjust
44 u8                            compressed_ack                                                  
45 u8:2                          dup_ack_counter                                                 
46 u8:1                          tlp_retrans                                                     
47 u8:1                          tcp_usec_ts             read_mostly         read_mostly
48 u32                           chrono_start            read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
49 u32[3]                        chrono_stat             read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
50 u8:2                          chrono_type             read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
51 u8:1                          rate_app_limited        -                   read_write          tcp_rate_gen
52 u8:1                          fastopen_connect                                                
53 u8:1                          fastopen_no_cookie                                              
54 u8:1                          is_sack_reneg           -                   read_mostly         tcp_skb_entail,tcp_ack
55 u8:2                          fastopen_client_fail                                            
56 u8:4                          nonagle                 read_write          -                   tcp_skb_entail,tcp_push_pending_frames
57 u8:1                          thin_lto                                                        
58 u8:1                          recvmsg_inq                                                     
59 u8:1                          repair                  read_mostly         -                   tcp_write_xmit
60 u8:1                          frto                                                            
61 u8                            repair_queue            -                   -                   
62 u8:2                          save_syn                                                        
63 u8:1                          syn_data                                                        
64 u8:1                          syn_fastopen                                                    
65 u8:1                          syn_fastopen_exp                                                
66 u8:1                          syn_fastopen_ch                                                 
67 u8:1                          syn_data_acked                                                  
68 u8:1                          is_cwnd_limited         read_mostly         -                   tcp_cwnd_validate,tcp_is_cwnd_limited
69 u32                           tlp_high_seq            -                   read_mostly         tcp_ack
70 u32                           tcp_tx_delay                                                    
71 u64                           tcp_wstamp_ns           read_write          -                   tcp_pacing_check,tcp_tso_should_defer,tcp_update_skb_after_send
72 u64                           tcp_clock_cache         read_write          read_write          tcp_mstamp_refresh(tcp_write_xmit/tcp_rcv_space_adjust),__tcp_transmit_skb,tcp_tso_should_defer;timer
73 u64                           tcp_mstamp              read_write          read_write          tcp_mstamp_refresh(tcp_write_xmit/tcp_rcv_space_adjust)(tx);tcp_rcv_space_adjust,tcp_rate_gen,tcp_clean_rtx_queue,tcp_ack_update_rtt/tcp_time_stamp(rx);timer
74 u32                           srtt_us                 read_mostly         read_write          tcp_tso_should_defer(tx);tcp_update_pacing_rate,__tcp_set_rto,tcp_rtt_estimator(rx)
75 u32                           mdev_us                 read_write          -                   tcp_rtt_estimator
76 u32                           mdev_max_us                                                     
77 u32                           rttvar_us               -                   read_mostly         __tcp_set_rto
78 u32                           rtt_seq                 read_write                              tcp_rtt_estimator
79 struct_minmax                 rtt_min                 -                   read_mostly         tcp_min_rtt/tcp_rate_gen,tcp_min_rtttcp_update_rtt_min
80 u32                           packets_out             read_write          read_write          tcp_packets_in_flight(tx/rx);tcp_slow_start_after_idle_check,tcp_nagle_check,tcp_rate_skb_sent,tcp_event_new_data_sent,tcp_cwnd_validate,tcp_write_xmit(tx);tcp_ack,tcp_clean_rtx_queue,tcp_update_pacing_rate(rx)
81 u32                           retrans_out             -                   read_mostly         tcp_packets_in_flight,tcp_rate_check_app_limited
82 u32                           max_packets_out         -                   read_write          tcp_cwnd_validate
83 u32                           cwnd_usage_seq          -                   read_write          tcp_cwnd_validate
84 u16                           urg_data                -                   read_mostly         tcp_fast_path_check
85 u8                            ecn_flags               read_write          -                   tcp_ecn_send
86 u8                            keepalive_probes                                                
87 u32                           reordering              read_mostly         -                   tcp_sndbuf_expand
88 u32                           reord_seen                                                      
89 u32                           snd_up                  read_write          read_mostly         tcp_mark_urg,tcp_urg_mode,__tcp_transmit_skb(tx);tcp_clean_rtx_queue(rx)
90 struct_tcp_options_received   rx_opt                  read_mostly         read_write          tcp_established_options(tx);tcp_fast_path_on,tcp_ack_update_window,tcp_is_sack,tcp_data_queue,tcp_rcv_established,tcp_ack_update_rtt(rx)
91 u32                           snd_ssthresh            -                   read_mostly         tcp_update_pacing_rate
92 u32                           snd_cwnd                read_mostly         read_mostly         tcp_snd_cwnd,tcp_rate_check_app_limited,tcp_tso_should_defer(tx);tcp_update_pacing_rate
93 u32                           snd_cwnd_cnt                                                    
94 u32                           snd_cwnd_clamp                                                  
95 u32                           snd_cwnd_used                                                   
96 u32                           snd_cwnd_stamp                                                  
97 u32                           prior_cwnd                                                      
98 u32                           prr_delivered                                                   
99 u32                           prr_out                 read_mostly         read_mostly         tcp_rate_skb_sent,tcp_newly_delivered(tx);tcp_ack,tcp_rate_gen,tcp_clean_rtx_queue(rx)
100 u32                           delivered               read_mostly         read_write          tcp_rate_skb_sent, tcp_newly_delivered(tx);tcp_ack, tcp_rate_gen, tcp_clean_rtx_queue (rx)
101 u32                           delivered_ce            read_mostly         read_write          tcp_rate_skb_sent(tx);tcp_rate_gen(rx)
102 u32                           lost                    -                   read_mostly         tcp_ack
103 u32                           app_limited             read_write          read_mostly         tcp_rate_check_app_limited,tcp_rate_skb_sent(tx);tcp_rate_gen(rx)
104 u64                           first_tx_mstamp         read_write          -                   tcp_rate_skb_sent
105 u64                           delivered_mstamp        read_write          -                   tcp_rate_skb_sent
106 u32                           rate_delivered          -                   read_mostly         tcp_rate_gen
107 u32                           rate_interval_us        -                   read_mostly         rate_delivered,rate_app_limited
108 u32                           rcv_wnd                 read_write          read_mostly         tcp_select_window,tcp_receive_window,tcp_fast_path_check
109 u32                           write_seq               read_write          -                   tcp_rate_check_app_limited,tcp_write_queue_empty,tcp_skb_entail,forced_push,tcp_mark_push
110 u32                           notsent_lowat           read_mostly         -                   tcp_stream_memory_free
111 u32                           pushed_seq              read_write          -                   tcp_mark_push,forced_push
112 u32                           lost_out                read_mostly         read_mostly         tcp_left_out(tx);tcp_packets_in_flight(tx/rx);tcp_rate_check_app_limited(rx)
113 u32                           sacked_out              read_mostly         read_mostly         tcp_left_out(tx);tcp_packets_in_flight(tx/rx);tcp_clean_rtx_queue(rx)
114 struct_hrtimer                pacing_timer                                                    
115 struct_hrtimer                compressed_ack_timer                                            
116 struct_sk_buff*               lost_skb_hint           read_mostly                             tcp_clean_rtx_queue
117 struct_sk_buff*               retransmit_skb_hint     read_mostly         -                   tcp_clean_rtx_queue
118 struct_rb_root                out_of_order_queue      -                   read_mostly         tcp_data_queue,tcp_fast_path_check
119 struct_sk_buff*               ooo_last_skb                                                    
120 struct_tcp_sack_block[1]      duplicate_sack                                                  
121 struct_tcp_sack_block[4]      selective_acks                                                  
122 struct_tcp_sack_block[4]      recv_sack_cache                                                 
123 struct_sk_buff*               highest_sack            read_write          -                   tcp_event_new_data_sent
124 int                           lost_cnt_hint                                                   
125 u32                           prior_ssthresh                                                  
126 u32                           high_seq                                                        
127 u32                           retrans_stamp                                                   
128 u32                           undo_marker                                                     
129 int                           undo_retrans                                                    
130 u64                           bytes_retrans                                                   
131 u32                           total_retrans                                                   
132 u32                           rto_stamp                                                       
133 u16                           total_rto                                                       
134 u16                           total_rto_recoveries                                            
135 u32                           total_rto_time                                                  
136 u32                           urg_seq                 -                   -                   
137 unsigned_int                  keepalive_time                                                  
138 unsigned_int                  keepalive_intvl                                                 
139 int                           linger2                                                         
140 u8                            bpf_sock_ops_cb_flags                                           
141 u8:1                          bpf_chg_cc_inprogress                                           
142 u16                           timeout_rehash                                                  
143 u32                           rcv_ooopack                                                     
144 u32                           rcv_rtt_last_tsecr                                              
145 struct                        rcv_rtt_est             -                   read_write          tcp_rcv_space_adjust,tcp_rcv_established
146 struct                        rcvq_space              -                   read_write          tcp_rcv_space_adjust
147 struct                        mtu_probe                                                       
148 u32                           plb_rehash                                                      
149 u32                           mtu_info                                                        
150 bool                          is_mptcp                                                        
151 bool                          smc_hs_congested                                                
152 bool                          syn_smc                                                         
153 struct_tcp_sock_af_ops*       af_specific                                                     
154 struct_tcp_md5sig_info*       md5sig_info                                                     
155 struct_tcp_fastopen_request*  fastopen_req                                                    
156 struct_request_sock*          fastopen_rsk                                                    
157 struct_saved_syn*             saved_syn