Documentation / networking / net_cachelines / tcp_sock.rst


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
.. SPDX-License-Identifier: GPL-2.0
.. Copyright (C) 2023 Google LLC

=========================================
tcp_sock struct fast path usage breakdown
=========================================

Type                          Name                    fastpath_tx_access  fastpath_rx_access  Comments
..struct                      ..tcp_sock                                                        
struct_inet_connection_sock   inet_conn                                                       
u16                           tcp_header_len          read_mostly         read_mostly         tcp_bound_to_half_wnd,tcp_current_mss(tx);tcp_rcv_established(rx)
u16                           gso_segs                read_mostly         -                   tcp_xmit_size_goal
__be32                        pred_flags              read_write          read_mostly         tcp_select_window(tx);tcp_rcv_established(rx)
u64                           bytes_received          -                   read_write          tcp_rcv_nxt_update(rx)
u32                           segs_in                 -                   read_write          tcp_v6_rcv(rx)
u32                           data_segs_in            -                   read_write          tcp_v6_rcv(rx)
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)
u32                           copied_seq              -                   read_mostly         tcp_cleanup_rbuf,tcp_rcv_space_adjust,tcp_inq_hint
u32                           rcv_wup                 -                   read_write          __tcp_cleanup_rbuf,tcp_receive_window,tcp_receive_established
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)
u32                           segs_out                read_write          -                   __tcp_transmit_skb
u32                           data_segs_out           read_write          -                   __tcp_transmit_skb,tcp_update_skb_after_send
u64                           bytes_sent              read_write          -                   __tcp_transmit_skb
u64                           bytes_acked             -                   read_write          tcp_snd_una_update/tcp_ack
u32                           dsack_dups                                                      
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)
u32                           snd_sml                 read_write          -                   tcp_minshall_check,tcp_minshall_update
u32                           rcv_tstamp              -                   read_mostly         tcp_ack
u32                           lsndtime                read_write          -                   tcp_slow_start_after_idle_check,tcp_event_data_sent
u32                           last_oow_ack_time                                               
u32                           compressed_ack_rcv_nxt                                          
u32                           tsoffset                read_mostly         read_mostly         tcp_established_options(tx);tcp_fast_parse_options(rx)
struct_list_head              tsq_node                -                   -                   
struct_list_head              tsorted_sent_queue      read_write          -                   tcp_update_skb_after_send
u32                           snd_wl1                 -                   read_mostly         tcp_may_update_window
u32                           snd_wnd                 read_mostly         read_mostly         tcp_wnd_end,tcp_tso_should_defer(tx);tcp_fast_path_on(rx)
u32                           max_window              read_mostly         -                   tcp_bound_to_half_wnd,forced_push
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)
u32                           window_clamp            read_mostly         read_write          tcp_rcv_space_adjust,__tcp_select_window
u32                           rcv_ssthresh            read_mostly         -                   __tcp_select_window
u8                            scaling_ratio           read_mostly         read_mostly         tcp_win_from_space
struct                        tcp_rack                                                        
u16                           advmss                  -                   read_mostly         tcp_rcv_space_adjust
u8                            compressed_ack                                                  
u8:2                          dup_ack_counter                                                 
u8:1                          tlp_retrans                                                     
u8:1                          tcp_usec_ts             read_mostly         read_mostly
u32                           chrono_start            read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
u32[3]                        chrono_stat             read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
u8:2                          chrono_type             read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
u8:1                          rate_app_limited        -                   read_write          tcp_rate_gen
u8:1                          fastopen_connect                                                
u8:1                          fastopen_no_cookie                                              
u8:1                          is_sack_reneg           -                   read_mostly         tcp_skb_entail,tcp_ack
u8:2                          fastopen_client_fail                                            
u8:4                          nonagle                 read_write          -                   tcp_skb_entail,tcp_push_pending_frames
u8:1                          thin_lto                                                        
u8:1                          recvmsg_inq                                                     
u8:1                          repair                  read_mostly         -                   tcp_write_xmit
u8:1                          frto                                                            
u8                            repair_queue            -                   -                   
u8:2                          save_syn                                                        
u8:1                          syn_data                                                        
u8:1                          syn_fastopen                                                    
u8:1                          syn_fastopen_exp                                                
u8:1                          syn_fastopen_ch                                                 
u8:1                          syn_data_acked                                                  
u8:1                          is_cwnd_limited         read_mostly         -                   tcp_cwnd_validate,tcp_is_cwnd_limited
u32                           tlp_high_seq            -                   read_mostly         tcp_ack
u32                           tcp_tx_delay                                                    
u64                           tcp_wstamp_ns           read_write          -                   tcp_pacing_check,tcp_tso_should_defer,tcp_update_skb_after_send
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
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
u32                           srtt_us                 read_mostly         read_write          tcp_tso_should_defer(tx);tcp_update_pacing_rate,__tcp_set_rto,tcp_rtt_estimator(rx)
u32                           mdev_us                 read_write          -                   tcp_rtt_estimator
u32                           mdev_max_us                                                     
u32                           rttvar_us               -                   read_mostly         __tcp_set_rto
u32                           rtt_seq                 read_write                              tcp_rtt_estimator
struct_minmax                 rtt_min                 -                   read_mostly         tcp_min_rtt/tcp_rate_gen,tcp_min_rtttcp_update_rtt_min
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)
u32                           retrans_out             -                   read_mostly         tcp_packets_in_flight,tcp_rate_check_app_limited
u32                           max_packets_out         -                   read_write          tcp_cwnd_validate
u32                           cwnd_usage_seq          -                   read_write          tcp_cwnd_validate
u16                           urg_data                -                   read_mostly         tcp_fast_path_check
u8                            ecn_flags               read_write          -                   tcp_ecn_send
u8                            keepalive_probes                                                
u32                           reordering              read_mostly         -                   tcp_sndbuf_expand
u32                           reord_seen                                                      
u32                           snd_up                  read_write          read_mostly         tcp_mark_urg,tcp_urg_mode,__tcp_transmit_skb(tx);tcp_clean_rtx_queue(rx)
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)
u32                           snd_ssthresh            -                   read_mostly         tcp_update_pacing_rate
u32                           snd_cwnd                read_mostly         read_mostly         tcp_snd_cwnd,tcp_rate_check_app_limited,tcp_tso_should_defer(tx);tcp_update_pacing_rate
u32                           snd_cwnd_cnt                                                    
u32                           snd_cwnd_clamp                                                  
u32                           snd_cwnd_used                                                   
u32                           snd_cwnd_stamp                                                  
u32                           prior_cwnd                                                      
u32                           prr_delivered                                                   
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)
u32                           delivered               read_mostly         read_write          tcp_rate_skb_sent, tcp_newly_delivered(tx);tcp_ack, tcp_rate_gen, tcp_clean_rtx_queue (rx)
u32                           delivered_ce            read_mostly         read_write          tcp_rate_skb_sent(tx);tcp_rate_gen(rx)
u32                           lost                    -                   read_mostly         tcp_ack
u32                           app_limited             read_write          read_mostly         tcp_rate_check_app_limited,tcp_rate_skb_sent(tx);tcp_rate_gen(rx)
u64                           first_tx_mstamp         read_write          -                   tcp_rate_skb_sent
u64                           delivered_mstamp        read_write          -                   tcp_rate_skb_sent
u32                           rate_delivered          -                   read_mostly         tcp_rate_gen
u32                           rate_interval_us        -                   read_mostly         rate_delivered,rate_app_limited
u32                           rcv_wnd                 read_write          read_mostly         tcp_select_window,tcp_receive_window,tcp_fast_path_check
u32                           write_seq               read_write          -                   tcp_rate_check_app_limited,tcp_write_queue_empty,tcp_skb_entail,forced_push,tcp_mark_push
u32                           notsent_lowat           read_mostly         -                   tcp_stream_memory_free
u32                           pushed_seq              read_write          -                   tcp_mark_push,forced_push
u32                           lost_out                read_mostly         read_mostly         tcp_left_out(tx);tcp_packets_in_flight(tx/rx);tcp_rate_check_app_limited(rx)
u32                           sacked_out              read_mostly         read_mostly         tcp_left_out(tx);tcp_packets_in_flight(tx/rx);tcp_clean_rtx_queue(rx)
struct_hrtimer                pacing_timer                                                    
struct_hrtimer                compressed_ack_timer                                            
struct_sk_buff*               lost_skb_hint           read_mostly                             tcp_clean_rtx_queue
struct_sk_buff*               retransmit_skb_hint     read_mostly         -                   tcp_clean_rtx_queue
struct_rb_root                out_of_order_queue      -                   read_mostly         tcp_data_queue,tcp_fast_path_check
struct_sk_buff*               ooo_last_skb                                                    
struct_tcp_sack_block[1]      duplicate_sack                                                  
struct_tcp_sack_block[4]      selective_acks                                                  
struct_tcp_sack_block[4]      recv_sack_cache                                                 
struct_sk_buff*               highest_sack            read_write          -                   tcp_event_new_data_sent
int                           lost_cnt_hint                                                   
u32                           prior_ssthresh                                                  
u32                           high_seq                                                        
u32                           retrans_stamp                                                   
u32                           undo_marker                                                     
int                           undo_retrans                                                    
u64                           bytes_retrans                                                   
u32                           total_retrans                                                   
u32                           rto_stamp                                                       
u16                           total_rto                                                       
u16                           total_rto_recoveries                                            
u32                           total_rto_time                                                  
u32                           urg_seq                 -                   -                   
unsigned_int                  keepalive_time                                                  
unsigned_int                  keepalive_intvl                                                 
int                           linger2                                                         
u8                            bpf_sock_ops_cb_flags                                           
u8:1                          bpf_chg_cc_inprogress                                           
u16                           timeout_rehash                                                  
u32                           rcv_ooopack                                                     
u32                           rcv_rtt_last_tsecr                                              
struct                        rcv_rtt_est             -                   read_write          tcp_rcv_space_adjust,tcp_rcv_established
struct                        rcvq_space              -                   read_write          tcp_rcv_space_adjust
struct                        mtu_probe                                                       
u32                           plb_rehash                                                      
u32                           mtu_info                                                        
bool                          is_mptcp                                                        
bool                          smc_hs_congested                                                
bool                          syn_smc                                                         
struct_tcp_sock_af_ops*       af_specific                                                     
struct_tcp_md5sig_info*       md5sig_info                                                     
struct_tcp_fastopen_request*  fastopen_req                                                    
struct_request_sock*          fastopen_rsk                                                    
struct_saved_syn*             saved_syn