lpfc_hb_mxp_handler(9)
π lpfc_hb_mxp_handler β Kernel API Manual β¨
okay so bestie, picture this: it's Kernel API Manual o'clock and we're deep in the lpfc driver, and this little icon is the thing that keeps your XRIs from sitting around unemployed π It lives over in ./drivers/scsi/lpfc and honestly? it's giving maintenance-mode main character energy. Let me break it all the way down for you π«Ά
πΈ NAME πΈ
lpfc_hb_mxp_handler β the Multi-XRI pools handler that adjusts XRI distribution π
no cap, that's literally its whole job.
β¨ SYNOPSIS β¨
void lpfc_hb_mxp_handler (struct lpfc_hba *phba );
returns nothing (void), takes exactly one argument, and minds its own business β¨
π ARGUMENTS π
phbaβ pointer to lpfc hba data structure. that's the whole arg list, queen, one and done π
π¦ DESCRIPTION π¦
so every single heartbeat β like, each time the hb tick comes around β this routine runs some heuristic methods to adjust XRI distribution π₯ it's out here doing little vibe checks on your XRIs and nudging them around.
and the goal?? the goal is to fully utilize free XRIs π― that's it, that's the dream. free XRIs deserve to be booked and busy, and this handler is basically their talent manager π
π SEE ALSO π
there's a whole kernel file it hangs with β ./drivers/scsi/lpfc/lpfc_init.c β and then, bestie, the friend group is enormous. like, a genuinely iconic roster. every single one of these, coming through π
lpfc_config_port_prep(9)lpfc_config_async_cmpl(9)lpfc_dump_wakeup_param_cmpl(9)lpfc_update_vport_wwn(9)lpfc_config_port_post(9)lpfc_sli4_refresh_params(9)lpfc_hba_init_link(9)lpfc_hba_init_link_fc_topology(9)lpfc_hba_down_link(9)lpfc_hba_down_prep(9)lpfc_sli4_free_sp_events(9)lpfc_hba_free_post_buf(9)lpfc_hba_clean_txcmplq(9)lpfc_hba_down_post_s3(9)lpfc_hba_down_post_s4(9)lpfc_hba_down_post(9)lpfc_hb_timeout(9)lpfc_rrq_timeout(9)lpfc_hb_mbox_cmpl(9)lpfc_issue_hb_mbox(9)lpfc_issue_hb_tmo(9)lpfc_hb_timeout_handler(9)lpfc_offline_eratt(9)lpfc_sli4_offline_eratt(9)lpfc_handle_deferred_eratt(9)lpfc_handle_eratt_s3(9)lpfc_sli4_port_sta_fn_reset(9)lpfc_handle_eratt_s4(9)lpfc_handle_eratt(9)lpfc_handle_latt(9)lpfc_parse_vpd(9)lpfc_get_atto_model_desc(9)lpfc_get_hba_model_desc(9)lpfc_sli3_post_buffer(9)lpfc_post_rcv_buf(9)lpfc_sha_init(9)lpfc_sha_iterate(9)lpfc_challenge_key(9)lpfc_hba_init(9)lpfc_cleanup(9)lpfc_stop_vport_timers(9)__lpfc_sli4_stop_fcf_redisc_wait_timer(9)lpfc_sli4_stop_fcf_redisc_wait_timer(9)lpfc_cmf_stop(9)lpfc_cmf_start(9)lpfc_stop_hba_timers(9)lpfc_block_mgmt_io(9)lpfc_sli4_node_rpi_restore(9)lpfc_create_expedite_pool(9)lpfc_destroy_expedite_pool(9)lpfc_create_multixri_pools(9)lpfc_destroy_multixri_pools(9)lpfc_online(9)lpfc_unblock_mgmt_io(9)lpfc_offline_prep(9)lpfc_offline(9)lpfc_scsi_free(9)lpfc_io_free(9)lpfc_sli4_els_sgl_update(9)lpfc_sli4_nvmet_sgl_update(9)lpfc_sli4_io_sgl_update(9)lpfc_new_io_buf(9)lpfc_vmid_res_alloc(9)lpfc_create_port(9)destroy_port(9)lpfc_get_instance(9)lpfc_scan_finished(9)lpfc_host_attrib_init(9)lpfc_stop_port_s3(9)lpfc_stop_port_s4(9)lpfc_stop_port(9)lpfc_fcf_redisc_wait_start_timer(9)lpfc_sli4_fcf_redisc_wait_tmo(9)lpfc_vmid_poll(9)lpfc_sli4_parse_latt_fault(9)lpfc_sli4_parse_latt_type(9)lpfc_sli_port_speed_get(9)lpfc_sli4_port_speed_parse(9)lpfc_sli4_async_link_evt(9)lpfc_async_link_speed_to_read_top(9)lpfc_cgn_update_stat(9)lpfc_cgn_update_tstamp(9)lpfc_cmf_stats_timer(9)lpfc_calc_cmf_latency(9)lpfc_cmf_timer(9)lpfc_sli4_async_fc_evt(9)lpfc_sli4_async_sli_evt(9)lpfc_sli4_perform_vport_cvl(9)lpfc_sli4_perform_all_vport_cvl(9)lpfc_sli4_async_fip_evt(9)lpfc_sli4_async_dcbx_evt(9)lpfc_sli4_async_grp5_evt(9)lpfc_sli4_async_cmstat_evt(9)lpfc_cgn_params_val(9)lpfc_cgn_params_parse(9)lpfc_sli4_cgn_params_read(9)lpfc_sli4_cgn_parm_chg_evt(9)lpfc_sli4_async_event_proc(9)lpfc_sli4_fcf_redisc_event_proc(9)lpfc_api_table_setup(9)lpfc_log_intr_mode(9)lpfc_enable_pci_dev(9)lpfc_disable_pci_dev(9)lpfc_reset_hba(9)lpfc_sli_sriov_nr_virtfn_get(9)lpfc_sli_probe_sriov_nr_virtfn(9)lpfc_setup_driver_resource_phase1(9)lpfc_sli_driver_resource_setup(9)lpfc_sli_driver_resource_unset(9)lpfc_sli4_driver_resource_setup(9)lpfc_sli4_driver_resource_unset(9)lpfc_init_api_table_setup(9)lpfc_setup_driver_resource_phase2(9)lpfc_unset_driver_resource_phase2(9)lpfc_free_iocb_list(9)lpfc_init_iocb_list(9)lpfc_free_sgl_list(9)lpfc_free_els_sgl_list(9)lpfc_free_nvmet_sgl_list(9)lpfc_init_active_sgl_array(9)lpfc_free_active_sgl(9)lpfc_init_sgl_list(9)lpfc_sli4_init_rpi_hdrs(9)lpfc_sli4_create_rpi_hdr(9)lpfc_sli4_remove_rpi_hdrs(9)lpfc_hba_alloc(9)lpfc_hba_free(9)lpfc_setup_fdmi_mask(9)lpfc_create_shost(9)lpfc_destroy_shost(9)lpfc_setup_bg(9)lpfc_post_init_setup(9)lpfc_sli_pci_mem_setup(9)lpfc_sli_pci_mem_unset(9)lpfc_sli4_post_status_check(9)lpfc_sli4_bar0_register_memmap(9)lpfc_sli4_bar1_register_memmap(9)lpfc_sli4_bar2_register_memmap(9)lpfc_create_bootstrap_mbox(9)lpfc_destroy_bootstrap_mbox(9)lpfc_map_topology(9)lpfc_sli4_read_config(9)lpfc_setup_endian_order(9)lpfc_sli4_queue_verify(9)lpfc_sli4_queue_create(9)lpfc_sli4_queue_destroy(9)lpfc_setup_cq_lookup(9)lpfc_sli4_queue_setup(9)lpfc_sli4_queue_unset(9)lpfc_sli4_cq_event_pool_create(9)lpfc_sli4_cq_event_pool_destroy(9)__lpfc_sli4_cq_event_alloc(9)lpfc_sli4_cq_event_alloc(9)__lpfc_sli4_cq_event_release(9)lpfc_sli4_cq_event_release(9)lpfc_sli4_cq_event_release_all(9)lpfc_pci_function_reset(9)lpfc_sli4_pci_mem_setup(9)lpfc_sli4_pci_mem_unset(9)lpfc_sli_enable_msix(9)lpfc_sli_enable_msi(9)lpfc_sli_enable_intr(9)lpfc_sli_disable_intr(9)lpfc_find_cpu_handle(9)lpfc_find_hyper(9)lpfc_cpu_map_array_init(9)lpfc_hba_eq_hdl_array_init(9)lpfc_cpu_affinity_check(9)lpfc_cpuhp_get_eq(9)lpfc_irq_set_aff(9)lpfc_irq_clear_aff(9)lpfc_irq_rebalance(9)lpfc_sli4_enable_msix(9)lpfc_sli4_enable_msi(9)lpfc_sli4_enable_intr(9)lpfc_sli4_disable_intr(9)lpfc_unset_hba(9)lpfc_sli4_xri_exchange_busy_wait(9)lpfc_sli4_hba_unset(9)__lpfc_reg_congestion_buf(9)lpfc_get_sli4_parameters(9)lpfc_pci_probe_one_s3(9)lpfc_pci_remove_one_s3(9)lpfc_pci_suspend_one_s3(9)lpfc_pci_resume_one_s3(9)lpfc_sli_prep_dev_for_recover(9)lpfc_sli_prep_dev_for_reset(9)lpfc_sli_prep_dev_for_perm_failure(9)lpfc_io_error_detected_s3(9)lpfc_io_slot_reset_s3(9)lpfc_io_resume_s3(9)lpfc_sli4_get_els_iocb_cnt(9)lpfc_sli4_get_iocb_cnt(9)lpfc_write_firmware(9)lpfc_sli4_request_firmware_update(9)lpfc_pci_probe_one_s4(9)lpfc_pci_remove_one_s4(9)lpfc_pci_suspend_one_s4(9)lpfc_pci_resume_one_s4(9)lpfc_sli4_prep_dev_for_recover(9)lpfc_sli4_prep_dev_for_reset(9)lpfc_sli4_prep_dev_for_perm_failure(9)lpfc_io_error_detected_s4(9)lpfc_io_slot_reset_s4(9)lpfc_io_resume_s4(9)lpfc_pci_probe_one(9)lpfc_pci_remove_one(9)lpfc_pci_suspend_one(9)lpfc_pci_resume_one(9)lpfc_io_error_detected(9)lpfc_io_slot_reset(9)lpfc_io_resume(9)lpfc_sli4_oas_verify(9)lpfc_sli4_ras_init(9)lpfc_init(9)lpfc_exit(9)
bestie that's the whole squad π every single one is a (9) section entry, so don't come for me about the length β the manpage said so, not me π
okay and last thing, the cute sign-off π this page ships out of ./drivers/scsi/lpfc in the kernel tree, and it's dated October 2026 β so yeah, it's from the future, slay β go read lpfc_init.c and stay hydrated ππ¦
π¦ 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