irdma_schedule_cm_timer(9)
π
irdma_schedule_cm_timer(9) β Kernel API Manual, bestie edition π
Okay so we're in the Kernel API Manual today and this one's a <hotpink>deep kernel internals</hotpink> girlie page β no cap. Buckle up, it's giving "you need to already know what a connection manager is" energy, but we're gonna walk through it together π«Ά
πΈ NAME πΈ
irdma_schedule_cm_timer β
Fair warning bestie: the description slot is literally empty in the source. That's not me being lazy, that's just what the page says π. The name is the whole name, no blurb. Periodt.
β¨ SYNOPSIS β¨
int irdma_schedule_cm_timer (struct irdma_cm_node *cm_node , struct
irdma_puda_buf *sqbuf , enum irdma_timer_type type , int send_retrans ,
int close_when_complete );
Look at that signature. It returns an int, takes five things, and it's lowkey long enough to need its own zip code π. Take it slow, copy it exactly, do not "fix" the spacing, iykyk.
π¦ ARGUMENTS π¦
cm_nodeβ the connection's node. This is the main character of the whole call, fr fr π .sqbufβ the buffer to send. Your payload, your little parcel π.typeβ tells us if it's a send or a close. Two moods, pick one π.send_retransβ whether rexmits are to be done (as in re-transmissions). Yes, "rexmits" is the word the page uses and yes we're keeping it π.close_when_completeβ iscm_nodeto be removed when we're done? Basically "do we yeet this node afterwards" π.
π DESCRIPTION π
β οΈ note β cm_node needs to be protected before calling this. Protect your node like you protect your peace, bestie π
Encase it in this exact spell, okay? Like this, verbatim:
irdma_rem_ref_cm_node(cm_core, cm_node); irdma_schedule_cm_timer(...)
refcount_inc(cm_node->refcnt);
That's the refcount dance. Do the dance. Don't skip the dance. The whole thing is about not letting that node get yanked out from under you while you're mid-timer, and honestly that's so valid of it.
π SEE ALSO π
The kernel file lives at ./drivers/infiniband/hw/irdma/cm.c β go say hi to the family π
irdma_free_sqbuf(9)irdma_record_ird_ord(9)irdma_copy_ip_ntohl(9)irdma_copy_ip_htonl(9)irdma_get_addr_info(9)irdma_fill_sockaddr4(9)irdma_fill_sockaddr6(9)irdma_get_cmevent_info(9)irdma_send_cm_event(9)irdma_timer_list_prep(9)irdma_create_event(9)irdma_free_retrans_entry(9)irdma_cleanup_retrans_entry(9)irdma_form_ah_cm_frame(9)irdma_form_uda_cm_frame(9)irdma_send_reset(9)irdma_active_open_err(9)irdma_passive_open_err(9)irdma_event_connect_error(9)irdma_process_options(9)irdma_handle_tcp_options(9)irdma_build_mpa_v1(9)irdma_build_mpa_v2(9)irdma_cm_build_mpa_frame(9)irdma_send_mpa_request(9)irdma_send_mpa_reject(9)irdma_negotiate_mpa_v2_ird_ord(9)irdma_parse_mpa(9)irdma_retrans_expired(9)irdma_handle_close_entry(9)irdma_cm_timer_tick(9)irdma_send_syn(9)irdma_send_ack(9)irdma_send_fin(9)irdma_find_listener(9)irdma_del_multiple_qhash(9)irdma_get_vlan_mac_ipv6(9)irdma_get_vlan_ipv4(9)irdma_add_mqh_6(9)irdma_add_mqh_4(9)irdma_add_mqh(9)irdma_reset_list_prep(9)irdma_dec_refcnt_listen(9)irdma_cm_del_listen(9)irdma_addr_resolve_neigh(9)irdma_get_dst_ipv6(9)irdma_addr_resolve_neigh_ipv6(9)irdma_find_node(9)irdma_add_hte_node(9)irdma_ipv4_is_lpb(9)irdma_ipv6_is_lpb(9)irdma_cm_create_ah(9)irdma_cm_free_ah(9)irdma_make_cm_node(9)irdma_rem_ref_cm_node(9)irdma_handle_fin_pkt(9)irdma_handle_rst_pkt(9)irdma_handle_rcv_mpa(9)irdma_check_syn(9)irdma_check_seq(9)irdma_handle_syn_pkt(9)irdma_handle_synack_pkt(9)irdma_handle_ack_pkt(9)irdma_process_pkt(9)irdma_make_listen_node(9)irdma_create_cm_node(9)irdma_cm_reject(9)irdma_cm_close(9)irdma_receive_ilq(9)irdma_setup_cm_core(9)irdma_cleanup_cm_core(9)irdma_init_tcp_ctx(9)irdma_cm_init_tsa_conn(9)irdma_cm_disconn(9)irdma_qp_disconnect(9)irdma_cm_disconn_true(9)irdma_disconnect_worker(9)irdma_free_lsmm_rsrc(9)irdma_accept(9)irdma_reject(9)irdma_connect(9)irdma_create_listen(9)irdma_destroy_listen(9)irdma_teardown_list_prep(9)irdma_cm_event_connected(9)irdma_cm_event_reset(9)irdma_cm_event_handler(9)irdma_cm_post_event(9)irdma_cm_teardown_connections(9)irdma_qhash_ctrl(9)irdma_if_notify(9)
That's the whole friend group, all (9) and all iconic π
And that's the page!! It lives in ./drivers/infiniband/hw/irdma, dated October 2026 β yes, the future, she's ahead of her time β Go protect your cm_node before you call this, bestie, and slay π
β¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms