lpfc_sli_han...ing_event_s4(9)
π lpfc_sli_handle_slow_ring_event_s4 π
okay so this is a page from the Kernel API Manual, section 9 β yes the Big Kernel One. bestie, it's giving "one tiny helper function that politely cleans up after everyone." let's get into it π«Ά
πΈ NAME πΈ
lpfc_sli_handle_slow_ring_event_s4 β Handle SLI4 slow-path els events β¨
π¦ SYNOPSIS π¦
void lpfc_sli_handle_slow_ring_event_s4 (struct lpfc_hba *phba , struct
lpfc_sli_ring *pring , uint32_t mask );
π ARGUMENTS π
phbaβ Pointer to HBA context object. the main character, honestly πpringβ Pointer to driver SLI ring object. she's the ring in question πmaskβ Host attention register mask for this ring. lowkey the vibe check for which ring woke up π₯
π DESCRIPTION π
okay so picture this. the worker thread is just minding its own business, and it goes "waitβ¦ there's a pending ELS response iocb sitting on the driver internal slow-path response iocb worker queue π". that's when this function gets called.
important detail, no cap: the caller does not hold any lock. none. zero. nada. π«π
so what does she do? she goes through the response worker queue and removes each response iocb from it, then calls the handle response iocb routine (lpfc_sli_sp_handle_rspiocb) to actually process it. she's not doing the work herself, she's the one handing out the work. delegation queen, periodt π
β SEE ALSO β
first up, the main-character source file: ./drivers/scsi/lpfc/lpfc_sli.c π¬
and nowβ¦ the entire squad. every single one of them. i'm not skipping a single bestie ππ
lpfc_sli4_pcimem_bcopy(9)
lpfc_sli4_wq_put(9)
lpfc_sli4_wq_release(9)
lpfc_sli4_mq_put(9)
lpfc_sli4_mq_release(9)
lpfc_sli4_eq_get(9)
lpfc_sli4_eq_clr_intr(9)
lpfc_sli4_if6_eq_clr_intr(9)
lpfc_sli4_write_eq_db(9)
lpfc_sli4_if6_write_eq_db(9)
lpfc_sli4_cq_get(9)
lpfc_sli4_write_cq_db(9)
lpfc_sli4_if6_write_cq_db(9)
lpfc_cmd_iocb(9)
lpfc_resp_iocb(9)
__lpfc_sli_get_iocbq(9)
__lpfc_clear_active_sglq(9)
__lpfc_get_active_sglq(9)
lpfc_clr_rrq_active(9)
lpfc_handle_rrq_active(9)
lpfc_get_active_rrq(9)
lpfc_cleanup_vports_rrqs(9)
lpfc_test_rrq_active(9)
lpfc_set_rrq_active(9)
__lpfc_sli_get_els_sglq(9)
__lpfc_sli_get_nvmet_sglq(9)
lpfc_sli_get_iocbq(9)
__lpfc_sli_release_iocbq_s4(9)
__lpfc_sli_release_iocbq_s3(9)
__lpfc_sli_release_iocbq(9)
lpfc_sli_release_iocbq(9)
lpfc_sli_cancel_iocbs(9)
lpfc_sli_iocb_cmd_type(9)
lpfc_sli_ring_map(9)
lpfc_sli_ringtxcmpl_put(9)
lpfc_sli_ringtx_get(9)
lpfc_cmf_sync_cmpl(9)
lpfc_issue_cmf_sync_wqe(9)
lpfc_sli_next_iocb_slot(9)
lpfc_sli_next_iotag(9)
lpfc_sli_submit_iocb(9)
lpfc_sli_update_full_ring(9)
lpfc_sli_update_ring(9)
lpfc_sli_resume_iocb(9)
lpfc_sli_next_hbq_slot(9)
lpfc_sli_hbqbuf_free_all(9)
lpfc_sli_hbq_to_firmware(9)
lpfc_sli_hbq_to_firmware_s3(9)
lpfc_sli_hbq_to_firmware_s4(9)
lpfc_sli_hbqbuf_fill_hbqs(9)
lpfc_sli_hbqbuf_add_hbqs(9)
lpfc_sli_hbqbuf_init_hbqs(9)
lpfc_sli_rqbuf_get(9)
lpfc_sli_hbqbuf_find(9)
lpfc_sli_free_hbq(9)
lpfc_sli_chk_mbx_command(9)
lpfc_sli_wake_mbox_wait(9)
lpfc_sli_def_mbox_cmpl(9)
lpfc_sli_handle_mb_event(9)
lpfc_sli_get_buff(9)
lpfc_nvme_unsol_ls_handler(9)
lpfc_complete_unsol_iocb(9)
lpfc_sli_process_unsol_iocb(9)
lpfc_sli_iocbq_lookup(9)
lpfc_sli_iocbq_lookup_by_tag(9)
lpfc_sli_process_sol_iocb(9)
lpfc_sli_rsp_pointers_error(9)
lpfc_poll_eratt(9)
lpfc_sli_handle_fast_ring_event(9)
lpfc_sli_sp_handle_rspiocb(9)
lpfc_sli_handle_slow_ring_event(9)
lpfc_sli_handle_slow_ring_event_s3(9)
lpfc_sli_abort_iocb_ring(9)
lpfc_sli_abort_fcp_rings(9)
lpfc_sli_flush_io_rings(9)
lpfc_sli_brdready_s3(9)
lpfc_sli_brdready_s4(9)
lpfc_sli_brdready(9)
lpfc_reset_barrier(9)
lpfc_sli_brdkill(9)
lpfc_sli_brdreset(9)
lpfc_sli4_brdreset(9)
lpfc_sli_brdrestart_s3(9)
lpfc_sli_brdrestart_s4(9)
lpfc_sli_brdrestart(9)
lpfc_sli_chipset_init(9)
lpfc_sli_hbq_count(9)
lpfc_sli_hbq_entry_count(9)
lpfc_sli_hbq_size(9)
lpfc_sli_hbq_setup(9)
lpfc_sli4_rb_setup(9)
lpfc_sli_config_port(9)
lpfc_sli_hba_setup(9)
lpfc_sli4_read_fcoe_params(9)
lpfc_sli4_read_rev(9)
lpfc_sli4_get_ctl_attr(9)
lpfc_sli4_retrieve_pport_name(9)
lpfc_sli4_arm_cqeq_intr(9)
lpfc_sli4_get_avail_extnt_rsrc(9)
lpfc_sli4_chk_avail_extnt_rsrc(9)
lpfc_sli4_cfg_post_extnts(9)
lpfc_sli4_alloc_extent(9)
lpfc_sli4_dealloc_extent(9)
lpfc_ras_stop_fwlog(9)
lpfc_sli4_ras_dma_free(9)
lpfc_sli4_ras_dma_alloc(9)
lpfc_sli4_ras_mbox_cmpl(9)
lpfc_sli4_ras_fwlog_init(9)
lpfc_sli4_ras_setup(9)
lpfc_sli4_alloc_resource_identifiers(9)
lpfc_sli4_dealloc_resource_identifiers(9)
lpfc_sli4_get_allocated_extnts(9)
lpfc_sli4_repost_sgl_list(9)
lpfc_sli4_repost_io_sgl_list(9)
lpfc_init_idle_stat_hb(9)
lpfc_rx_monitor_create_ring(9)
lpfc_rx_monitor_destroy_ring(9)
lpfc_rx_monitor_record(9)
lpfc_rx_monitor_report(9)
lpfc_cmf_setup(9)
lpfc_get_platform_uuid(9)
lpfc_sli4_hba_setup(9)
lpfc_mbox_timeout(9)
lpfc_sli4_mbox_completions_pending(9)
lpfc_sli4_process_missed_mbox_completions(9)
lpfc_mbox_timeout_handler(9)
lpfc_sli_issue_mbox_s3(9)
lpfc_sli4_async_mbox_block(9)
lpfc_sli4_async_mbox_unblock(9)
lpfc_sli4_wait_bmbx_ready(9)
lpfc_sli4_post_sync_mbox(9)
lpfc_sli_issue_mbox_s4(9)
lpfc_sli4_post_async_mbox(9)
lpfc_sli_issue_mbox(9)
lpfc_mbox_api_table_setup(9)
__lpfc_sli_ringtx_put(9)
lpfc_sli_next_iocb(9)
__lpfc_sli_issue_iocb_s3(9)
__lpfc_sli_issue_fcp_io_s3(9)
__lpfc_sli_issue_fcp_io_s4(9)
__lpfc_sli_issue_iocb_s4(9)
lpfc_sli_api_table_setup(9)
lpfc_sli4_calc_ring(9)
lpfc_sli_issue_iocb(9)
lpfc_extra_ring_setup(9)
lpfc_sli_async_event_handler(9)
lpfc_sli4_setup(9)
lpfc_sli_setup(9)
lpfc_sli4_queue_init(9)
lpfc_sli_queue_init(9)
lpfc_sli_mbox_sys_flush(9)
lpfc_sli_host_down(9)
lpfc_sli_hba_down(9)
lpfc_sli_pcimem_bcopy(9)
lpfc_sli_bemem_bcopy(9)
lpfc_sli_ringpostbuf_put(9)
lpfc_sli_get_buffer_tag(9)
lpfc_sli_ring_taggedbuf_get(9)
lpfc_sli_ringpostbuf_get(9)
lpfc_sli_abort_els_cmpl(9)
lpfc_ignore_els_cmpl(9)
lpfc_sli_issue_abort_iotag(9)
lpfc_sli_hba_iocb_abort(9)
lpfc_sli_validate_fcp_iocb_for_abort(9)
lpfc_sli_validate_fcp_iocb(9)
lpfc_sli_sum_iocb(9)
lpfc_sli_abort_fcp_cmpl(9)
lpfc_sli_abort_iocb(9)
lpfc_sli_abort_taskmgmt(9)
lpfc_sli_wake_iocb_wait(9)
lpfc_chk_iocb_flg(9)
lpfc_sli_issue_iocb_wait(9)
lpfc_sli_issue_mbox_wait(9)
lpfc_sli_mbox_sys_shutdown(9)
lpfc_sli_eratt_read(9)
lpfc_sli4_eratt_read(9)
lpfc_sli_check_eratt(9)
lpfc_intr_state_check(9)
lpfc_sli_sp_intr_handler(9)
lpfc_sli_fp_intr_handler(9)
lpfc_sli_intr_handler(9)
lpfc_sli4_els_xri_abort_event_proc(9)
lpfc_sli4_els_preprocess_rspiocbq(9)
lpfc_sli4_sp_handle_async_event(9)
lpfc_sli4_sp_handle_mbox_event(9)
lpfc_sli4_sp_handle_mcqe(9)
lpfc_sli4_sp_handle_els_wcqe(9)
lpfc_sli4_sp_handle_rel_wcqe(9)
lpfc_sli4_sp_handle_abort_xri_wcqe(9)
lpfc_sli4_sp_handle_rcqe(9)
lpfc_sli4_sp_handle_cqe(9)
lpfc_sli4_sp_handle_eqe(9)
__lpfc_sli4_process_cq(9)
__lpfc_sli4_sp_process_cq(9)
lpfc_sli4_sp_process_cq(9)
lpfc_sli4_dly_sp_process_cq(9)
lpfc_sli4_fp_handle_fcp_wcqe(9)
lpfc_sli4_fp_handle_rel_wcqe(9)
lpfc_sli4_nvmet_handle_rcqe(9)
lpfc_sli4_fp_handle_cqe(9)
__lpfc_sli4_hba_process_cq(9)
lpfc_sli4_hba_process_cq(9)
lpfc_sli4_hba_handle_eqe(9)
lpfc_sli4_dly_hba_process_cq(9)
lpfc_sli4_hba_intr_handler(9)
lpfc_sli4_intr_handler(9)
lpfc_sli4_queue_free(9)
lpfc_sli4_queue_alloc(9)
lpfc_dual_chute_pci_bar_map(9)
lpfc_modify_hba_eq_delay(9)
lpfc_eq_create(9)
lpfc_sli4_hba_intr_handler_th(9)
lpfc_cq_create(9)
lpfc_cq_create_set(9)
lpfc_mq_create_fb_init(9)
lpfc_mq_create(9)
lpfc_wq_create(9)
lpfc_rq_create(9)
lpfc_mrq_create(9)
lpfc_eq_destroy(9)
lpfc_cq_destroy(9)
lpfc_mq_destroy(9)
lpfc_wq_destroy(9)
lpfc_rq_destroy(9)
lpfc_sli4_post_sgl(9)
lpfc_sli4_alloc_xri(9)
__lpfc_sli4_free_xri(9)
lpfc_sli4_free_xri(9)
lpfc_sli4_next_xritag(9)
lpfc_sli4_post_sgl_list(9)
lpfc_sli4_post_io_sgl_block(9)
lpfc_sli4_post_io_sgl_list(9)
lpfc_fc_frame_check(9)
lpfc_fc_hdr_get_vfi(9)
lpfc_fc_frame_to_vport(9)
lpfc_update_rcv_time_stamp(9)
lpfc_cleanup_rcv_buffers(9)
lpfc_rcv_seq_check_edtov(9)
lpfc_fc_frame_add(9)
lpfc_sli4_abort_partial_seq(9)
lpfc_sli4_abort_ulp_seq(9)
lpfc_sli4_seq_abort_rsp_cmpl(9)
lpfc_sli4_xri_inrange(9)
lpfc_sli4_seq_abort_rsp(9)
lpfc_sli4_handle_unsol_abort(9)
lpfc_seq_complete(9)
lpfc_prep_seq(9)
lpfc_sli4_handle_received_buffer(9)
lpfc_sli4_post_all_rpi_hdrs(9)
lpfc_sli4_post_rpi_hdr(9)
lpfc_sli4_alloc_rpi(9)
__lpfc_sli4_free_rpi(9)
lpfc_sli4_free_rpi(9)
lpfc_sli4_remove_rpis(9)
lpfc_sli4_resume_rpi(9)
lpfc_sli4_init_vpi(9)
lpfc_mbx_cmpl_add_fcf_record(9)
lpfc_sli4_add_fcf_record(9)
lpfc_sli4_build_dflt_fcf_record(9)
lpfc_sli4_fcf_scan_read_fcf_rec(9)
lpfc_sli4_fcf_rr_read_fcf_rec(9)
lpfc_sli4_read_fcf_rec(9)
lpfc_check_next_fcf_pri_level(9)
lpfc_sli4_fcf_rr_next_index_get(9)
lpfc_sli4_fcf_rr_index_set(9)
lpfc_sli4_fcf_rr_index_clear(9)
lpfc_mbx_cmpl_redisc_fcf_table(9)
lpfc_sli4_redisc_fcf_table(9)
lpfc_sli4_fcf_dead_failthrough(9)
lpfc_sli_get_config_region23(9)
lpfc_sli4_get_config_region23(9)
lpfc_sli_read_link_ste(9)
lpfc_log_fw_write_cmpl(9)
lpfc_wr_object(9)
lpfc_cleanup_pending_mbox(9)
lpfc_drain_txq(9)
lpfc_wqe_bpl2sgl(9)
lpfc_sli4_issue_wqe(9)
lpfc_sli4_issue_abort_iotag(9)
lpfc_snapshot_mxp(9)
lpfc_adjust_pvt_pool_count(9)
lpfc_adjust_high_watermark(9)
lpfc_move_xri_pvt_to_pbl(9)
_lpfc_move_xri_pbl_to_pvt(9)
lpfc_move_xri_pbl_to_pvt(9)
lpfc_keep_pvt_pool_above_lowwm(9)
lpfc_release_io_buf(9)
lpfc_get_io_buf_from_private_pool(9)
lpfc_get_io_buf_from_expedite_pool(9)
lpfc_get_io_buf_from_multixri_pools(9)
lpfc_get_io_buf(9)
lpfc_read_object(9)
lpfc_get_sgl_per_hdwq(9)
lpfc_put_sgl_per_hdwq(9)
lpfc_free_sgl_per_hdwq(9)
lpfc_get_cmd_rsp_buf_per_hdwq(9)
lpfc_put_cmd_rsp_buf_per_hdwq(9)
lpfc_free_cmd_rsp_buf_per_hdwq(9)
lpfc_sli_prep_wqe(9)
likeβ¦ 299 functions. she knows everybody. iykyk ππ
and that's the whole thing, bestie, you ate that π this lil page lives in ./drivers/scsi/lpfc and it's dated October 2026 β so go forth and handle those slow-ring events, you absolute icon ππβ¨
π¦ 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