lpfc_sli4_enable_msix(9)
π NAME π
okay so bestie, welcome to the lpfc_sli4_enable_msix(9) page from the Kernel API Manual β this is the function that does the MSI-X glow-up for SLI-4 devices:
lpfc_sli4_enable_msix β Enable MSI-X interrupt mode to SLI-4 device
πΈ SYNOPSIS πΈ
int lpfc_sli4_enable_msix (struct lpfc_hba *phba );
π ARGUMENTS π
phbaβ pointer to lpfc hba data structure. that's the whole argument, no cap.
π¦ DESCRIPTION π¦
Okay so this routine gets invoked to enable the MSI-X interrupt vectors to device with SLI-4 interface spec. It also allocates MSI-X vectors and maps them to cpus on the system. multitasking icon behavior, honestly π .
When cfg_irq_numa is enabled, the adapter will only allocate vectors for the number of cpus on the same numa node as this adapter. The vectors are allocated without requesting OS affinity mapping. A vector will be allocated and assigned to each online and offline cpu. If the cpu is online, then affinity will be set to that cpu. If the cpu is offline, then affinity will be set to the nearest peer cpu within the numa node that is online. If there are no online cpus within the numa node, affinity is not assigned and the OS may do as it pleases. Note: cpu vector affinity mapping is consistent with the way cpu online/offline is handled when cfg_irq_numa is configured. lowkey important, bestie π«Ά.
If numa mode is not enabled and there is more than 1 vector allocated, then the driver relies on the managed irq interface where the OS assigns vector to cpu affinity. The driver will then use that affinity mapping to setup its cpu mapping table. periodt.
Return codes 0 - successful other values - error.
π SEE ALSO π
okay bestie, the SEE ALSO list is a whole crowd, but every single one is invited β here are the exact refs, no cap:
Kernel file ./drivers/scsi/lpfc/lpfc_init.c 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_hb_mxp_handler(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_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)
okay thatβs the whole page, bestie π source/version is ./drivers/scsi/lpfc, date is October 2026, and the manual name is lpfc_sli4_enable_msix(9). byeee π«Άβ¨
π¦ 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