irdma_sc_ma..._table_entry(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… irdma_sc_ma..._table_entry β€” Kernel API Manual, section 9 ✨

okay so bestie, welcome to the glow-up of irdma_sc_manage_qhash_table_entry. this is a section 9 kernel API page, so grab your strawberrry matcha πŸ“ and let's get into it. no cap, this one's a whole vibe about quad hash bookkeeping.


✨ NAME ✨

irdma_sc_manage_qhash_table_entry β€” manage quad hash entries πŸ¦‹


✨ SYNOPSIS ✨

int irdma_sc_manage_qhash_table_entry (struct irdma_sc_cqp *cqp , struct
irdma_qhash_table_info *info , u64 scratch , bool post_sq );

πŸŽ€ ARGUMENTS πŸŽ€

  • cqp β€” the struct for cqp hw. literally the hardware's control corner, she runs the show πŸ‘‘
  • info β€” info for quad hash to manage. this is the ~content~ of what you're managing, the main character struct fr
  • scratch β€” a u64 that gets saved and used during cqp completion. think of it as a lil note-to-self that survives the journey πŸ’Œ
  • post_sq β€” flag for cqp db to ring. yep, that's the whole description, she's ✨mysterious✨ like that

🌸 DESCRIPTION 🌸

This is called before connection establishment is started. iykyk β€” timing is everything πŸ’…

For passive connections, when a listener is created, it calls with an entry type of IRDMA_QHASH_TYPE_TCP_SYN, along with the local ip address and tcp port. so the listener's out here announcing herself before anyone even says hi 🫢

Then when a SYN is received (that's the passive-connection pipeline) or sent (active-connection girlies), this routine gets called again with an entry type of IRDMA_QHASH_TYPE_TCP_ESTABLISHED, and the quad is passed in info. iconic behaviour, honestly 🌈

And the best part: when the iwarp connection is done and its state moves to RTS, the quad hash entry in the hardware will point to iwarp's qp number, and it requires no calls from the driver. she handles herself. main character energy, periodt ⭐


πŸ”₯ SEE ALSO πŸ”₯

first up, the source file herself:

Kernel file ./drivers/infiniband/hw/irdma/ctrl.c

and now... the whole squad 😭 the entire group chat, every single one, no skips:

irdma_get_qp_from_list(9), irdma_sc_suspend_resume_qps(9),
irdma_change_l2params(9), irdma_qp_rem_qos(9), irdma_qp_add_qos(9),
irdma_sc_pd_init(9), irdma_sc_add_arp_cache_entry(9),
irdma_sc_del_arp_cache_entry(9), irdma_sc_manage_apbvt_entry(9),
irdma_sc_qp_init(9), irdma_sc_srq_init(9), irdma_sc_srq_create(9),
irdma_sc_srq_modify(9), irdma_sc_srq_destroy(9), irdma_sc_qp_create(9),
irdma_sc_qp_modify(9), irdma_sc_qp_destroy(9),
irdma_sc_get_encoded_ird_size(9), irdma_sc_qp_setctx_roce_gen_2(9),
irdma_sc_get_encoded_ird_size_gen_3(9),
irdma_sc_qp_setctx_roce_gen_3(9), irdma_sc_add_local_mac_entry(9),
irdma_sc_del_local_mac_entry(9), irdma_sc_qp_setctx(9),
irdma_sc_alloc_stag(9), irdma_sc_mr_reg_non_shared(9),
irdma_sc_dealloc_stag(9), irdma_sc_mw_alloc(9),
irdma_sc_mr_fast_register(9), irdma_sc_gen_rts_ae(9),
irdma_sc_send_lsmm(9), irdma_sc_send_rtt(9), irdma_iwarp_opcode(9),
irdma_locate_mpa(9), irdma_bld_termhdr_ctrl(9),
irdma_bld_termhdr_ddp_rdma(9), irdma_bld_terminate_hdr(9),
irdma_terminate_send_fin(9), irdma_terminate_connection(9),
irdma_terminate_received(9), irdma_sc_vsi_init(9),
irdma_get_stats_idx(9), irdma_hw_stats_init_gen1(9),
irdma_vsi_stats_init(9), irdma_vsi_stats_free(9),
irdma_get_encoded_wqe_size(9), irdma_sc_gather_stats(9),
irdma_sc_manage_stats_inst(9), irdma_sc_set_up_map(9),
irdma_sc_manage_ws_node(9), irdma_sc_qp_flush_wqes(9),
irdma_sc_gen_ae(9), irdma_sc_manage_push_page(9),
irdma_sc_suspend_qp(9), irdma_sc_resume_qp(9), irdma_sc_cq_init(9),
irdma_sc_cq_create(9), irdma_sc_cq_destroy(9), irdma_sc_cq_resize(9),
irdma_sc_cq_modify(9), irdma_sc_get_decoded_ird_size_gen_3(9),
irdma_check_cqp_progress(9), irdma_get_cqp_reg_info(9),
irdma_sc_cqp_def_cmpl_ae_handler(9), irdma_sc_cqp_cleanup_handler(9),
irdma_cqp_poll_registers(9), irdma_sc_decode_fpm_commit(9),
irdma_sc_parse_fpm_commit_buf(9), irdma_sc_decode_fpm_query(9),
irdma_sc_parse_fpm_query_buf(9), irdma_sc_cqp_init(9),
irdma_sc_cqp_create(9), irdma_sc_cqp_post_sq(9),
irdma_sc_cqp_get_next_send_wqe_idx(9), irdma_sc_cqp_destroy(9),
irdma_sc_ccq_arm(9), irdma_sc_process_def_cmpl(9),
irdma_sc_process_ooo_cmpl(9), irdma_sc_ccq_get_cqe_info(9),
irdma_sc_poll_for_cqp_op_done(9), irdma_sc_manage_hmc_pm_func_table(9),
irdma_sc_commit_fpm_val_done(9), irdma_sc_commit_fpm_val(9),
irdma_sc_query_fpm_val_done(9), irdma_sc_query_fpm_val(9),
irdma_sc_ceq_init(9), irdma_sc_ceq_create(9),
irdma_sc_cceq_create_done(9), irdma_sc_cceq_destroy_done(9),
irdma_sc_cceq_create(9), irdma_sc_ceq_destroy(9),
irdma_sc_process_ceq(9), irdma_sc_cleanup_ceqes(9),
irdma_sc_aeq_init(9), irdma_sc_aeq_create(9), irdma_sc_aeq_destroy(9),
irdma_sc_get_next_aeqe(9), irdma_sc_repost_aeq_entries(9),
irdma_sc_ccq_init(9), irdma_sc_ccq_create_done(9),
irdma_sc_ccq_create(9), irdma_sc_ccq_destroy(9),
irdma_sc_init_iw_hmc(9), irdma_set_loc_mem(9), irdma_sc_cfg_iw_fpm(9),
cqp_sds_wqe_fill(9), irdma_update_pe_sds(9), irdma_update_sds_noccq(9),
irdma_sc_static_hmc_pages_allocated(9), irdma_cqp_ring_full(9),
irdma_est_sd(9), irdma_sc_query_rdma_features(9),
irdma_get_rdma_features(9), irdma_get_rsrc_mem_config(9),
irdma_cfg_sd_mem(9), irdma_get_objs_pages(9),
irdma_set_host_hmc_rsrc_gen_3(9), irdma_verify_commit_fpm_gen_3(9),
irdma_set_loc_hmc_rsrc_gen_3(9), cfg_fpm_value_gen_3(9),
irdma_cfg_fpm_val(9), irdma_exec_cqp_cmd(9), irdma_process_cqp_cmd(9),
irdma_process_bh(9), irdma_cfg_aeq(9), sc_vsi_update_stats(9),
irdma_wait_pe_ready(9), irdma_sc_dev_init(9), irdma_stat_val(9),
irdma_stat_delta(9), irdma_update_stats(9)

like, that's not a SEE ALSO, that's a roster. ate and left no crumbs πŸ’€πŸ’…


okay that's the page!! this one came straight out of the ./drivers/infiniband/hw/irdma directory (the source), and the whole thing's dated October 2026 β€” so she's from the future, highkey iconic 🌈⭐ mwah, go read ctrl.c bestie πŸ’–πŸ«Ά

πŸ“¦ where this page comes from