tcp_sock struct fast path usage breakdown¶
| Type | Name | fastpath_tx_access | fastpath_rx_access | Comments | 
|---|---|---|---|---|
| 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 | |
| void * | tcp_clean_acked | 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 | |||
| lost_skb_hint | read_mostly | tcp_clean_rtx_queue | ||
| 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 | |
| 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 | |||
| 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 |