bnx2i_queue_scsi_cmd_resp(9)
πΈ bnx2i_queue_scsi_cmd_resp(9) β the "put it in the queue bestie" era πΈ
okay so this is a page from the Kernel API Manual, section 9 of the manual, and it's about a kernel function that is very much doing the most so your SCSI commands come back in order. let's get into it π«Ά
β¨ NAME β¨
bnx2i_queue_scsi_cmd_resp β literally just queues up the cmd completion to the percpu thread. that's the whole vibe. no cap. π
π SYNOPSIS π
int bnx2i_queue_scsi_cmd_resp (struct iscsi_session *session , struct
bnx2i_conn *bnx2i_conn , struct bnx2i_nop_in_msg *cqe );
π¦ ARGUMENTS π¦
sessionβ the iscsi session, bestie. the big picture.bnx2i_connβ the bnx2i connection. the situationship between your driver and the hardware, if you will.cqeβ pointer to the newly DMA'ed CQE entry that's about to get processed. fresh out of the DMA oven π₯
π DESCRIPTION π
so the deal is: this function gets called by the generic KCQ handler to queue up all the pending cmd completion CQEs. all of them. not some. all. π
the way the implementation works is that it queues the cmd response based on the last recorded command for the given connection. the cpu_id gets recorded upon task_xmit.
and then the iconic part:
No out-of-order completion! π«π
like, the ordering is the main character of this function, fr fr. nobody cuts the line. periodt.
π SEE ALSO π
the kernel file ./drivers/scsi/bnx2i/bnx2i_hwi.c is where the magic lives, and here's the whole friend group β every single one of them, no skips:
bnx2i_get_cid_num(9),bnx2i_adjust_qp_size(9),bnx2i_get_link_state(9)bnx2i_iscsi_license_error(9),bnx2i_arm_cq_event_coalescing(9)bnx2i_get_rq_buf(9),bnx2i_put_rq_buf(9)bnx2i_ring_sq_dbell(9),bnx2i_ring_dbell_update_sq_params(9)bnx2i_send_iscsi_login(9),bnx2i_send_iscsi_tmf(9),bnx2i_send_iscsi_text(9)bnx2i_send_iscsi_scsicmd(9),bnx2i_send_iscsi_nopout(9),bnx2i_send_iscsi_logout(9)bnx2i_update_iscsi_conn(9),bnx2i_ep_ofld_timer(9)bnx2i_send_cmd_cleanup_req(9),bnx2i_send_conn_destroy(9)bnx2i_570x_send_conn_ofld_req(9),bnx2i_5771x_send_conn_ofld_req(9),bnx2i_send_conn_ofld_req(9)setup_qp_page_tables(9),bnx2i_alloc_qp_resc(9),bnx2i_free_qp_resc(9)bnx2i_send_fw_iscsi_init_msg(9)bnx2i_process_scsi_cmd_resp(9),bnx2i_process_login_resp(9),bnx2i_process_text_resp(9)bnx2i_process_tmf_resp(9),bnx2i_process_logout_resp(9)bnx2i_process_nopin_local_cmpl(9),bnx2i_unsol_pdu_adjust_rq(9)bnx2i_process_nopin_mesg(9),bnx2i_process_async_mesg(9),bnx2i_process_reject_mesg(9)bnx2i_process_cmd_cleanup_resp(9),bnx2i_percpu_io_thread(9),bnx2i_process_new_cqes(9)bnx2i_fastpath_notification(9),bnx2i_process_update_conn_cmpl(9)bnx2i_recovery_que_add_conn(9),bnx2i_process_tcp_error(9),bnx2i_process_iscsi_error(9)bnx2i_process_conn_destroy_cmpl(9),bnx2i_process_ofld_cmpl(9)bnx2i_indicate_kcqe(9),bnx2i_indicate_netevent(9)bnx2i_cm_connect_cmpl(9),bnx2i_cm_close_cmpl(9),bnx2i_cm_abort_cmpl(9)bnx2i_cm_remote_close(9),bnx2i_cm_remote_abort(9)bnx2i_map_ep_dbell_regs(9)
like, that's the whole gc right there πβ¨
okay that's the page!! it lives in ./drivers/scsi/bnx2i and it's dated October 2026, and the header/footer energy is Kernel API Manual section 9, same function name top and bottom because symmetry ate π mwah, go read the source, ily, bye ππ§π
π¦ 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