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