← Documents Documentation/networking/net_cachelines/inet_connection_sock.rst GitHub 원문 ↗

Linux 6.18.37 · Networking

inet_connection_sock struct fast path usage breakdown

inet_connection_sock field의 TX·RX fast-path access와 참조 symbol 표입니다.

Source pathDocumentation/networking/net_cachelines/inet_connection_sock.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

inet_connection_sock.rst:1-51

Timer, congestion control, ACK와 MTU probing field의 read/write hotness를 function 단위로 비교합니다. 원문 표 전체를 구조화하여 type과 symbol을 그대로 보존했습니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2 .. Copyright (C) 2023 Google LLC
3
4 =====================================================
5 inet_connection_sock struct fast path usage breakdown
6 =====================================================
7
8 =================================== ====================== =================== =================== ========================================================================================================================================================
9 Type Name fastpath_tx_access fastpath_rx_access comment
10 =================================== ====================== =================== =================== ========================================================================================================================================================
11 struct inet_sock icsk_inet read_mostly read_mostly tcp_init_buffer_space,tcp_init_transfer,tcp_finish_connect,tcp_connect,tcp_send_rcvq,tcp_send_syn_data
12 struct request_sock_queue icsk_accept_queue
13 struct inet_bind_bucket icsk_bind_hash read_mostly tcp_set_state
14 struct inet_bind2_bucket icsk_bind2_hash read_mostly tcp_set_state,inet_put_port
15 struct timer_list icsk_retransmit_timer read_write inet_csk_reset_xmit_timer,tcp_connect
16 struct timer_list icsk_delack_timer read_mostly inet_csk_reset_xmit_timer,tcp_connect
17 u32 icsk_rto read_write tcp_cwnd_validate,tcp_schedule_loss_probe,tcp_connect_init,tcp_connect,tcp_write_xmit,tcp_push_one
18 u32 icsk_rto_min
19 u32 icsk_rto_max read_mostly tcp_reset_xmit_timer
20 u32 icsk_delack_max
21 u32 icsk_pmtu_cookie read_write tcp_sync_mss,tcp_current_mss,tcp_send_syn_data,tcp_connect_init,tcp_connect
22 struct tcp_congestion_ops icsk_ca_ops read_write tcp_cwnd_validate,tcp_tso_segs,tcp_ca_dst_init,tcp_connect_init,tcp_connect,tcp_write_xmit
23 struct inet_connection_sock_af_ops icsk_af_ops read_mostly tcp_finish_connect,tcp_send_syn_data,tcp_mtup_init,tcp_mtu_check_reprobe,tcp_mtu_probe,tcp_connect_init,tcp_connect,__tcp_transmit_skb
24 struct tcp_ulp_ops* icsk_ulp_ops
25 void* icsk_ulp_data
26 u8:5 icsk_ca_state read_write tcp_cwnd_application_limited,tcp_set_ca_state,tcp_enter_cwr,tcp_tso_should_defer,tcp_mtu_probe,tcp_schedule_loss_probe,tcp_write_xmit,__tcp_transmit_skb
27 u8:1 icsk_ca_initialized read_write tcp_init_transfer,tcp_init_congestion_control,tcp_init_transfer,tcp_finish_connect,tcp_connect
28 u8:1 icsk_ca_setsockopt
29 u8:1 icsk_ca_dst_locked write_mostly tcp_ca_dst_init,tcp_connect_init,tcp_connect
30 u8 icsk_retransmits write_mostly tcp_connect_init,tcp_connect
31 u8 icsk_pending read_write inet_csk_reset_xmit_timer,tcp_connect,tcp_check_probe_timer,__tcp_push_pending_frames,tcp_rearm_rto,tcp_event_new_data_sent,tcp_event_new_data_sent
32 u8 icsk_backoff write_mostly tcp_write_queue_purge,tcp_connect_init
33 u8 icsk_syn_retries
34 u8 icsk_probes_out
35 u16 icsk_ext_hdr_len read_mostly __tcp_mtu_to_mss,tcp_mtu_to_rss,tcp_mtu_probe,tcp_write_xmit,tcp_mtu_to_mss,
36 struct icsk_ack_u8 pending read_write read_write inet_csk_ack_scheduled,__tcp_cleanup_rbuf,tcp_cleanup_rbuf,inet_csk_clear_xmit_timer,tcp_event_ack-sent,inet_csk_reset_xmit_timer
37 struct icsk_ack_u8 quick read_write write_mostly tcp_dec_quickack_mode,tcp_event_ack_sent,__tcp_transmit_skb,__tcp_select_window,__tcp_cleanup_rbuf
38 struct icsk_ack_u8 pingpong
39 struct icsk_ack_u8 retry write_mostly read_write inet_csk_clear_xmit_timer,tcp_rearm_rto,tcp_event_new_data_sent,tcp_write_xmit,__tcp_send_ack,tcp_send_ack,
40 struct icsk_ack_u8 ato read_mostly write_mostly tcp_dec_quickack_mode,tcp_event_ack_sent,__tcp_transmit_skb,__tcp_send_ack,tcp_send_ack
41 struct icsk_ack_u32 lrcvtime read_write tcp_finish_connect,tcp_connect,tcp_event_data_sent,__tcp_transmit_skb
42 struct icsk_ack_u16 rcv_mss write_mostly read_mostly __tcp_select_window,__tcp_cleanup_rbuf,tcp_initialize_rcv_mss,tcp_connect_init
43 struct icsk_mtup_int search_high read_write tcp_mtup_init,tcp_sync_mss,tcp_connect_init,tcp_mtu_check_reprobe,tcp_write_xmit
44 struct icsk_mtup_int search_low read_write tcp_mtu_probe,tcp_mtu_check_reprobe,tcp_write_xmit,tcp_sync_mss,tcp_connect_init,tcp_mtup_init
45 struct icsk_mtup_u32:31 probe_size read_write tcp_mtup_init,tcp_connect_init,__tcp_transmit_skb
46 struct icsk_mtup_u32:1 enabled read_write tcp_mtup_init,tcp_sync_mss,tcp_connect_init,tcp_mtu_probe,tcp_write_xmit
47 struct icsk_mtup_u32 probe_timestamp read_write tcp_mtup_init,tcp_connect_init,tcp_mtu_check_reprobe,tcp_mtu_probe
48 u32 icsk_probes_tstamp
49 u32 icsk_user_timeout
50 u64[104/sizeof(u64)] icsk_ca_priv
51 =================================== ====================== =================== =================== ========================================================================================================================================================
52

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Field별 TX·RX access

1-51

표는 `struct inet_connection_sock` 계열 field를 type과 name별로 나누고 TX 및 RX fast path에서 주로 읽는지, 주로 쓰는지, 읽고 쓰는지를 표시합니다. Comment 열의 function명은 해당 field를 사용하는 대표 kernel symbol입니다. 값이 비어 있는 칸은 이 자료에서 fast-path access 성격을 지정하지 않은 field입니다.

송신 경로에서는 `icsk_rto`, `icsk_pmtu_cookie`, congestion control의 `icsk_ca_ops`와 state, pending timer 및 MTU probing field가 반복적으로 read/write됩니다. ACK 관련 `pending`, `quick`, `retry`, `ato`는 TX와 RX가 서로 다른 access pattern을 가지므로 cacheline 배치를 검토할 때 특히 중요합니다.

inet_connection_sock fast-path field
TypeNameTX fast pathRX fast path참조 function
struct inet_sockicsk_inetread_mostly (주로 읽기)read_mostly (주로 읽기)tcp_init_buffer_space,tcp_init_transfer,tcp_finish_connect,tcp_connect,tcp_send_rcvq,tcp_send_syn_data
struct request_sock_queueicsk_accept_queue
struct inet_bind_bucketicsk_bind_hashread_mostly (주로 읽기)tcp_set_state
struct inet_bind2_bucketicsk_bind2_hashread_mostly (주로 읽기)tcp_set_state,inet_put_port
struct timer_listicsk_retransmit_timerread_write (읽기·쓰기)inet_csk_reset_xmit_timer,tcp_connect
struct timer_listicsk_delack_timerread_mostly (주로 읽기)inet_csk_reset_xmit_timer,tcp_connect
u32icsk_rtoread_write (읽기·쓰기)tcp_cwnd_validate,tcp_schedule_loss_probe,tcp_connect_init,tcp_connect,tcp_write_xmit,tcp_push_one
u32icsk_rto_min
u32icsk_rto_maxread_mostly (주로 읽기)tcp_reset_xmit_timer
u32icsk_delack_max
u32icsk_pmtu_cookieread_write (읽기·쓰기)tcp_sync_mss,tcp_current_mss,tcp_send_syn_data,tcp_connect_init,tcp_connect
struct tcp_congestion_opsicsk_ca_opsread_write (읽기·쓰기)tcp_cwnd_validate,tcp_tso_segs,tcp_ca_dst_init,tcp_connect_init,tcp_connect,tcp_write_xmit
struct inet_connection_sock_af_opsicsk_af_opsread_mostly (주로 읽기)tcp_finish_connect,tcp_send_syn_data,tcp_mtup_init,tcp_mtu_check_reprobe,tcp_mtu_probe,tcp_connect_init,tcp_connect,__tcp_transmit_skb
struct tcp_ulp_ops*icsk_ulp_ops
void*icsk_ulp_data
u8:5icsk_ca_stateread_write (읽기·쓰기)tcp_cwnd_application_limited,tcp_set_ca_state,tcp_enter_cwr,tcp_tso_should_defer,tcp_mtu_probe,tcp_schedule_loss_probe,tcp_write_xmit,__tcp_transmit_skb
u8:1icsk_ca_initializedread_write (읽기·쓰기)tcp_init_transfer,tcp_init_congestion_control,tcp_init_transfer,tcp_finish_connect,tcp_connect
u8:1icsk_ca_setsockopt
u8:1icsk_ca_dst_lockedwrite_mostly (주로 쓰기)tcp_ca_dst_init,tcp_connect_init,tcp_connect
u8icsk_retransmitswrite_mostly (주로 쓰기)tcp_connect_init,tcp_connect
u8icsk_pendingread_write (읽기·쓰기)inet_csk_reset_xmit_timer,tcp_connect,tcp_check_probe_timer,__tcp_push_pending_frames,tcp_rearm_rto,tcp_event_new_data_sent,tcp_event_new_data_sent
u8icsk_backoffwrite_mostly (주로 쓰기)tcp_write_queue_purge,tcp_connect_init
u8icsk_syn_retries
u8icsk_probes_out
u16icsk_ext_hdr_lenread_mostly (주로 읽기)__tcp_mtu_to_mss,tcp_mtu_to_rss,tcp_mtu_probe,tcp_write_xmit,tcp_mtu_to_mss,
struct icsk_ack_u8pendingread_write (읽기·쓰기)read_write (읽기·쓰기)inet_csk_ack_scheduled,__tcp_cleanup_rbuf,tcp_cleanup_rbuf,inet_csk_clear_xmit_timer,tcp_event_ack-sent,inet_csk_reset_xmit_timer
struct icsk_ack_u8quickread_write (읽기·쓰기)write_mostly (주로 쓰기)tcp_dec_quickack_mode,tcp_event_ack_sent,__tcp_transmit_skb,__tcp_select_window,__tcp_cleanup_rbuf
struct icsk_ack_u8pingpong
struct icsk_ack_u8retrywrite_mostly (주로 쓰기)read_write (읽기·쓰기)inet_csk_clear_xmit_timer,tcp_rearm_rto,tcp_event_new_data_sent,tcp_write_xmit,__tcp_send_ack,tcp_send_ack,
struct icsk_ack_u8atoread_mostly (주로 읽기)write_mostly (주로 쓰기)tcp_dec_quickack_mode,tcp_event_ack_sent,__tcp_transmit_skb,__tcp_send_ack,tcp_send_ack
struct icsk_ack_u32lrcvtimeread_write (읽기·쓰기)tcp_finish_connect,tcp_connect,tcp_event_data_sent,__tcp_transmit_skb
struct icsk_ack_u16rcv_msswrite_mostly (주로 쓰기)read_mostly (주로 읽기)__tcp_select_window,__tcp_cleanup_rbuf,tcp_initialize_rcv_mss,tcp_connect_init
struct icsk_mtup_intsearch_highread_write (읽기·쓰기)tcp_mtup_init,tcp_sync_mss,tcp_connect_init,tcp_mtu_check_reprobe,tcp_write_xmit
struct icsk_mtup_intsearch_lowread_write (읽기·쓰기)tcp_mtu_probe,tcp_mtu_check_reprobe,tcp_write_xmit,tcp_sync_mss,tcp_connect_init,tcp_mtup_init
struct icsk_mtup_u32:31probe_sizeread_write (읽기·쓰기)tcp_mtup_init,tcp_connect_init,__tcp_transmit_skb
struct icsk_mtup_u32:1enabledread_write (읽기·쓰기)tcp_mtup_init,tcp_sync_mss,tcp_connect_init,tcp_mtu_probe,tcp_write_xmit
struct icsk_mtup_u32probe_timestampread_write (읽기·쓰기)tcp_mtup_init,tcp_connect_init,tcp_mtu_check_reprobe,tcp_mtu_probe
u32icsk_probes_tstamp
u32icsk_user_timeout
u64[104/sizeof(u64)]icsk_ca_priv

원문 표의 type, symbol, access 분류와 function 좌표를 보존했습니다.

.. SPDX-License-Identifier: GPL-2.0
.. Copyright (C) 2023 Google LLC

=====================================================
inet_connection_sock struct fast path usage breakdown
=====================================================

=================================== ====================== =================== =================== ========================================================================================================================================================
Type                                Name                   fastpath_tx_access  fastpath_rx_access  comment
=================================== ====================== =================== =================== ========================================================================================================================================================
struct inet_sock                    icsk_inet              read_mostly         read_mostly         tcp_init_buffer_space,tcp_init_transfer,tcp_finish_connect,tcp_connect,tcp_send_rcvq,tcp_send_syn_data
struct request_sock_queue           icsk_accept_queue
struct inet_bind_bucket             icsk_bind_hash         read_mostly                             tcp_set_state
struct inet_bind2_bucket            icsk_bind2_hash        read_mostly                             tcp_set_state,inet_put_port
struct timer_list                   icsk_retransmit_timer  read_write                              inet_csk_reset_xmit_timer,tcp_connect
struct timer_list                   icsk_delack_timer      read_mostly                             inet_csk_reset_xmit_timer,tcp_connect
u32                                 icsk_rto               read_write                              tcp_cwnd_validate,tcp_schedule_loss_probe,tcp_connect_init,tcp_connect,tcp_write_xmit,tcp_push_one
u32                                 icsk_rto_min
u32                                 icsk_rto_max           read_mostly                             tcp_reset_xmit_timer
u32                                 icsk_delack_max
u32                                 icsk_pmtu_cookie       read_write                              tcp_sync_mss,tcp_current_mss,tcp_send_syn_data,tcp_connect_init,tcp_connect
struct tcp_congestion_ops           icsk_ca_ops            read_write                              tcp_cwnd_validate,tcp_tso_segs,tcp_ca_dst_init,tcp_connect_init,tcp_connect,tcp_write_xmit
struct inet_connection_sock_af_ops  icsk_af_ops            read_mostly                             tcp_finish_connect,tcp_send_syn_data,tcp_mtup_init,tcp_mtu_check_reprobe,tcp_mtu_probe,tcp_connect_init,tcp_connect,__tcp_transmit_skb
struct tcp_ulp_ops*                 icsk_ulp_ops
void*                               icsk_ulp_data
u8:5                                icsk_ca_state          read_write                              tcp_cwnd_application_limited,tcp_set_ca_state,tcp_enter_cwr,tcp_tso_should_defer,tcp_mtu_probe,tcp_schedule_loss_probe,tcp_write_xmit,__tcp_transmit_skb
u8:1                                icsk_ca_initialized    read_write                              tcp_init_transfer,tcp_init_congestion_control,tcp_init_transfer,tcp_finish_connect,tcp_connect
u8:1                                icsk_ca_setsockopt
u8:1                                icsk_ca_dst_locked     write_mostly                            tcp_ca_dst_init,tcp_connect_init,tcp_connect
u8                                  icsk_retransmits       write_mostly                            tcp_connect_init,tcp_connect
u8                                  icsk_pending           read_write                              inet_csk_reset_xmit_timer,tcp_connect,tcp_check_probe_timer,__tcp_push_pending_frames,tcp_rearm_rto,tcp_event_new_data_sent,tcp_event_new_data_sent
u8                                  icsk_backoff           write_mostly                            tcp_write_queue_purge,tcp_connect_init
u8                                  icsk_syn_retries
u8                                  icsk_probes_out
u16                                 icsk_ext_hdr_len       read_mostly                             __tcp_mtu_to_mss,tcp_mtu_to_rss,tcp_mtu_probe,tcp_write_xmit,tcp_mtu_to_mss,
struct icsk_ack_u8                  pending                read_write          read_write          inet_csk_ack_scheduled,__tcp_cleanup_rbuf,tcp_cleanup_rbuf,inet_csk_clear_xmit_timer,tcp_event_ack-sent,inet_csk_reset_xmit_timer
struct icsk_ack_u8                  quick                  read_write          write_mostly        tcp_dec_quickack_mode,tcp_event_ack_sent,__tcp_transmit_skb,__tcp_select_window,__tcp_cleanup_rbuf
struct icsk_ack_u8                  pingpong
struct icsk_ack_u8                  retry                  write_mostly        read_write          inet_csk_clear_xmit_timer,tcp_rearm_rto,tcp_event_new_data_sent,tcp_write_xmit,__tcp_send_ack,tcp_send_ack,
struct icsk_ack_u8                  ato                    read_mostly         write_mostly        tcp_dec_quickack_mode,tcp_event_ack_sent,__tcp_transmit_skb,__tcp_send_ack,tcp_send_ack
struct icsk_ack_u32                 lrcvtime               read_write                              tcp_finish_connect,tcp_connect,tcp_event_data_sent,__tcp_transmit_skb
struct icsk_ack_u16                 rcv_mss                write_mostly        read_mostly         __tcp_select_window,__tcp_cleanup_rbuf,tcp_initialize_rcv_mss,tcp_connect_init
struct icsk_mtup_int                search_high            read_write                              tcp_mtup_init,tcp_sync_mss,tcp_connect_init,tcp_mtu_check_reprobe,tcp_write_xmit
struct icsk_mtup_int                search_low             read_write                              tcp_mtu_probe,tcp_mtu_check_reprobe,tcp_write_xmit,tcp_sync_mss,tcp_connect_init,tcp_mtup_init
struct icsk_mtup_u32:31             probe_size             read_write                              tcp_mtup_init,tcp_connect_init,__tcp_transmit_skb
struct icsk_mtup_u32:1              enabled                read_write                              tcp_mtup_init,tcp_sync_mss,tcp_connect_init,tcp_mtu_probe,tcp_write_xmit
struct icsk_mtup_u32                probe_timestamp        read_write                              tcp_mtup_init,tcp_connect_init,tcp_mtu_check_reprobe,tcp_mtu_probe
u32                                 icsk_probes_tstamp
u32                                 icsk_user_timeout
u64[104/sizeof(u64)]                icsk_ca_priv
=================================== ====================== =================== =================== ========================================================================================================================================================