lpfc_sli4_fc..._failthrough(9)
π lpfc_sli4_fcf_dead_failthrough β Kernel API Manual π
okay bestie, welcome to the lpfc_sli4_fc..._failthrough(9) page β yes the title's literally abbreviated like that, that's just how this manual entry is named, no cap. this is one of those little kernel-API corner-of-the-driver pages and honestly? she's lowkey iconic for how specific she is. let's get into it π¦
β¨ NAME β¨
lpfc_sli4_fcf_dead_failthrough β the failthrough routine that handles the FCF DEAD event π
like, when a Fibre Channel Forwarder just dies on you and the fancy fast failover didn't work out, this is the girl they call. main character energy fr fr.
πΈ SYNOPSIS πΈ
void lpfc_sli4_fcf_dead_failthrough (struct lpfc_hba *phba );
that's the whole vibe. no return value, no bells, no whistles β she just takes your HBA and goes to work π«Ά
π ARGUMENTS π
phbaβ pointer to thelpfc_hbadata structure, aka the driver's big ol' book of everything it knows about your host bus adapter π hand her the hba, she handles the rest.
π₯ DESCRIPTION π₯
so here's the situation, bestie: this function is the failover routine of last resort</> for the FCF DEAD event. read that again β last resort. not the cute first-choice failover, not the fast failover, the "okay we tried the fast path and it did not slay" path π
the way that it works is basically: the driver already attempted to perform a fast FCF failover, and it failed to do so. at that point this function steps in as the failthrough. it's giving cleanup crew at 3am. it's giving "fine, I'll do it myself" π
no cap though β the whole point is that this is the fallback of the fallback. if you're seeing this routine run, the fast failover already said "not today." π
β SEE ALSO β
first up, she lives in this kernel file, a whole legend: ./drivers/scsi/lpfc/lpfc_sli.c
and these are all her neighbors, friends, and total strangers in the same file β every single one, because we do not gatekeep on this page π:
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_handle_slow_ring_event_s4(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_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)
periodt. that's the whole friend group π
okay that's the page!! she's short, she's sweet, she's the last-resort failthrough of your dreams. mwah π
from the ./drivers/scsi/lpfc corner of the kernel, dated October 2026 β drink water, read your SEE ALSOs, and may your FCF never go DEAD on you π§πΈπ
π¦ 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