i40e_vsi_request_irq_msix(9)
π
i40e_vsi_request_irq_msix(9) β the Kernel API Manual, but make it slay β¨
okay so bestie. welcome to the Kernel API Manual entry for i40e_vsi_request_irq_msix(9) and honestly? this one is a little baddie. it's short, it's sweet, it's literally the moment your network card's interrupts get their whole life together. let's get into it π
β¨ NAME β¨
i40e_vsi_request_irq_msix β Initialize MSI-X interrupts π¦
like, that's the whole vibe. that's the job. she initializes, she MSI-X's, she interrupts. iconic behavior only π
πΈ SYNOPSIS πΈ
int i40e_vsi_request_irq_msix (struct i40e_vsi *vsi , char *basename );
so it hands back an int (iykyk β check that return value, bestie, don't just ignore it π) and it takes exactly two things: a struct i40e_vsi * and a char *. that's it. that's the whole guest list π
π ARGUMENTS π
vsiβ the VSI being configured π so like, the actual virtual station interface that's getting its glow-up in this call. she's the main character here, fr fr.basenameβ the name for the vector β literally just the name label for the vector. that's it. that's the whole descriptor. no cap.
π§ DESCRIPTION π§
okay so here's the tea, and it's genuinely a short one: this function allocates MSI-X vectors and requests interrupts from the kernel. that's the entire description. she allocates, then she asks the kernel very politely for interrupts, and the kernel (hopefully) says yes π«Ά
no extra lore, no secret side quests β that's literally all the manual gives us, and we are NOT out here inventing behavior, bestie. facts only π₯
π SEE ALSO π
the source of truth herself lives right here in the kernel file π
Kernel file ./drivers/net/ethernet/intel/i40e/i40e_main.c
and now, bestie, brace yourself β this is the friend group. the whole i40e extended universe pulled up to the function party ππ every single one of them, no gatekeeping:
i40e_hw_to_dev(9)i40e_allocate_dma_mem(9)i40e_free_dma_mem(9)i40e_allocate_virt_mem(9)i40e_free_virt_mem(9)i40e_get_lump(9)i40e_put_lump(9)i40e_find_vsi_from_id(9)i40e_service_event_schedule(9)i40e_tx_timeout(9)i40e_get_vsi_stats_struct(9)i40e_get_netdev_stats_struct_tx(9)i40e_get_netdev_stats_struct(9)i40e_vsi_reset_stats(9)i40e_pf_reset_stats(9)i40e_compute_pci_to_hw_id(9)i40e_stat_update64(9)i40e_stat_update48(9)i40e_stat_update32(9)i40e_stat_update_and_clear32(9)i40e_stats_update_rx_discards(9)i40e_update_eth_stats(9)i40e_update_veb_stats(9)i40e_update_vsi_stats(9)i40e_update_pf_stats(9)i40e_update_stats(9)i40e_count_all_filters(9)i40e_count_active_filters(9)i40e_find_filter(9)i40e_find_mac(9)i40e_is_vsi_in_vlan(9)i40e_correct_mac_vlan_filters(9)i40e_get_vf_new_vlan(9)i40e_correct_vf_mac_vlan_filters(9)i40e_rm_default_mac_filter(9)i40e_add_filter(9)__i40e_del_filter(9)i40e_add_mac_filter(9)i40e_del_mac_filter(9)i40e_set_mac(9)i40e_config_rss_aq(9)i40e_vsi_config_rss(9)i40e_vsi_setup_queue_map_mqprio(9)i40e_vsi_setup_queue_map(9)i40e_addr_sync(9)i40e_addr_unsync(9)i40e_set_rx_mode(9)i40e_undo_del_filter_entries(9)i40e_undo_add_filter_entries(9)i40e_next_filter(9)i40e_update_filter_state(9)i40e_aqc_del_filters(9)i40e_aqc_add_filters(9)i40e_aqc_broadcast_filter(9)i40e_set_promiscuous(9)i40e_sync_vsi_filters(9)i40e_sync_filters_subtask(9)i40e_calculate_vsi_rx_buf_len(9)i40e_max_vsi_frame_size(9)i40e_change_mtu(9)i40e_vlan_stripping_enable(9)i40e_vlan_stripping_disable(9)i40e_add_vlan_all_mac(9)i40e_vsi_add_vlan(9)i40e_rm_vlan_all_mac(9)i40e_vsi_kill_vlan(9)i40e_vlan_rx_add_vid(9)i40e_vlan_rx_add_vid_up(9)i40e_vlan_rx_kill_vid(9)i40e_restore_vlan(9)i40e_vsi_add_pvid(9)i40e_vsi_remove_pvid(9)i40e_vsi_setup_tx_resources(9)i40e_vsi_free_tx_resources(9)i40e_vsi_setup_rx_resources(9)i40e_vsi_free_rx_resources(9)i40e_config_xps_tx_ring(9)i40e_xsk_pool(9)i40e_configure_tx_ring(9)i40e_rx_offset(9)i40e_configure_rx_ring(9)i40e_vsi_configure_tx(9)i40e_vsi_configure_rx(9)i40e_vsi_config_dcb_rings(9)i40e_set_vsi_rx_mode(9)i40e_reset_fdir_filter_cnt(9)i40e_fdir_filter_restore(9)i40e_vsi_configure(9)i40e_vsi_configure_msix(9)i40e_enable_misc_int_causes(9)i40e_configure_msi_and_legacy(9)i40e_irq_dynamic_disable_icr0(9)i40e_irq_dynamic_enable_icr0(9)i40e_msix_clean_rings(9)i40e_irq_affinity_notify(9)i40e_irq_affinity_release(9)i40e_vsi_disable_irq(9)i40e_vsi_enable_irq(9)i40e_free_misc_vector(9)i40e_intr(9)i40e_clean_fdir_tx_irq(9)i40e_fdir_clean_ring(9)i40e_map_vector_to_qp(9)i40e_vsi_map_rings_to_vectors(9)i40e_vsi_request_irq(9)i40e_netpoll(9)i40e_pf_txq_wait(9)i40e_control_tx_q(9)i40e_control_wait_tx_q(9)i40e_vsi_enable_tx(9)i40e_pf_rxq_wait(9)i40e_control_rx_q(9)i40e_control_wait_rx_q(9)i40e_vsi_enable_rx(9)i40e_vsi_start_rings(9)i40e_vsi_stop_rings(9)i40e_vsi_stop_rings_no_wait(9)i40e_vsi_free_irq(9)i40e_free_q_vector(9)i40e_vsi_free_q_vectors(9)i40e_reset_interrupt_capability(9)i40e_clear_interrupt_scheme(9)i40e_napi_enable_all(9)i40e_napi_disable_all(9)i40e_vsi_close(9)i40e_quiesce_vsi(9)i40e_unquiesce_vsi(9)i40e_pf_quiesce_all_vsi(9)i40e_pf_unquiesce_all_vsi(9)i40e_vsi_wait_queues_disabled(9)i40e_pf_wait_queues_disabled(9)i40e_get_iscsi_tc_map(9)i40e_dcb_get_num_tc(9)i40e_dcb_get_enabled_tc(9)i40e_mqprio_get_enabled_tc(9)i40e_pf_get_num_tc(9)i40e_pf_get_tc_map(9)i40e_vsi_get_bw_info(9)i40e_vsi_configure_bw_alloc(9)i40e_vsi_config_netdev_tc(9)i40e_vsi_update_queue_map(9)i40e_update_adq_vsi_queues(9)i40e_vsi_config_tc(9)i40e_vsi_reconfig_tc(9)i40e_get_link_speed(9)i40e_bw_bytes_to_mbits(9)i40e_set_bw_limit(9)i40e_remove_queue_channels(9)i40e_get_max_queues_for_channel(9)i40e_validate_num_queues(9)i40e_vsi_reconfig_rss(9)i40e_channel_setup_queue_map(9)i40e_add_channel(9)i40e_channel_config_tx_ring(9)i40e_setup_hw_channel(9)i40e_setup_channel(9)i40e_validate_and_set_switch_mode(9)i40e_create_queue_channel(9)i40e_configure_queue_channels(9)i40e_veb_config_tc(9)i40e_dcb_reconfigure(9)i40e_resume_port_tx(9)i40e_suspend_port_tx(9)i40e_hw_set_dcb_config(9)i40e_hw_dcb_config(9)i40e_dcb_sw_default_config(9)i40e_init_pf_dcb(9)i40e_print_link_message(9)i40e_up_complete(9)i40e_vsi_reinit_locked(9)i40e_force_link_state(9)i40e_up(9)i40e_down(9)i40e_validate_mqprio_qopt(9)i40e_vsi_set_default_tc_config(9)i40e_del_macvlan_filter(9)i40e_add_macvlan_filter(9)i40e_reset_ch_rings(9)i40e_free_macvlan_channels(9)i40e_fwd_ring_up(9)i40e_setup_macvlans(9)i40e_fwd_add(9)i40e_del_all_macvlans(9)i40e_fwd_del(9)i40e_setup_tc(9)i40e_set_cld_element(9)i40e_add_del_cloud_filter(9)i40e_add_del_cloud_filter_big_buf(9)i40e_parse_cls_flower(9)i40e_handle_tclass(9)i40e_configure_clsflower(9)i40e_find_cloud_filter(9)i40e_delete_clsflower(9)i40e_setup_tc_cls_flower(9)i40e_open(9)i40e_netif_set_realnum_tx_rx_queues(9)i40e_vsi_open(9)i40e_fdir_filter_exit(9)i40e_cloud_filter_exit(9)i40e_close(9)i40e_do_reset(9)i40e_dcb_need_reconfig(9)i40e_handle_lldp_event(9)i40e_do_reset_safe(9)i40e_handle_lan_overflow_event(9)i40e_get_current_fd_count(9)i40e_get_global_fd_count(9)i40e_reenable_fdir_sb(9)i40e_reenable_fdir_atr(9)i40e_delete_invalid_filter(9)i40e_fdir_check_and_reenable(9)i40e_fdir_flush_and_replay(9)i40e_get_current_atr_cnt(9)i40e_fdir_reinit_subtask(9)i40e_vsi_link_event(9)i40e_veb_link_event(9)i40e_link_event(9)i40e_watchdog_subtask(9)i40e_reset_subtask(9)i40e_handle_link_event(9)i40e_clean_adminq_subtask(9)i40e_verify_eeprom(9)i40e_enable_pf_switch_lb(9)i40e_disable_pf_switch_lb(9)i40e_config_bridge_mode(9)i40e_reconstitute_veb(9)i40e_get_capabilities(9)i40e_fdir_sb_setup(9)i40e_fdir_teardown(9)i40e_rebuild_cloud_filters(9)i40e_rebuild_channels(9)i40e_clean_xps_state(9)i40e_prep_for_reset(9)i40e_send_version(9)i40e_get_oem_version(9)i40e_reset(9)i40e_rebuild(9)i40e_reset_and_rebuild(9)i40e_handle_reset_warning(9)i40e_print_vf_mdd_event(9)i40e_print_vfs_mdd_events(9)i40e_handle_mdd_event(9)i40e_service_task(9)i40e_service_timer(9)i40e_set_num_rings_in_vsi(9)i40e_vsi_alloc_arrays(9)i40e_vsi_mem_alloc(9)i40e_vsi_free_arrays(9)i40e_clear_rss_config_user(9)i40e_vsi_clear(9)i40e_vsi_clear_rings(9)i40e_alloc_rings(9)i40e_reserve_msix_vectors(9)i40e_init_msix(9)i40e_vsi_alloc_q_vector(9)i40e_vsi_alloc_q_vectors(9)i40e_init_interrupt_scheme(9)i40e_restore_interrupt_scheme(9)i40e_setup_misc_vector_for_recovery_mode(9)i40e_setup_misc_vector(9)i40e_get_rss_aq(9)i40e_config_rss_reg(9)i40e_get_rss_reg(9)i40e_config_rss(9)i40e_get_rss(9)i40e_fill_rss_lut(9)i40e_pf_config_rss(9)i40e_reconfig_rss_queues(9)i40e_get_partition_bw_setting(9)i40e_set_partition_bw_setting(9)i40e_is_total_port_shutdown_enabled(9)i40e_sw_init(9)i40e_set_ntuple(9)i40e_clear_rss_lut(9)i40e_set_loopback(9)i40e_set_features(9)i40e_ndo_fdb_add(9)i40e_ndo_bridge_setlink(9)i40e_ndo_bridge_getlink(9)i40e_features_check(9)i40e_xdp_setup(9)i40e_enter_busy_conf(9)i40e_exit_busy_conf(9)i40e_queue_pair_reset_stats(9)i40e_queue_pair_clean_rings(9)i40e_queue_pair_toggle_napi(9)i40e_queue_pair_toggle_rings(9)i40e_queue_pair_enable_irq(9)i40e_queue_pair_disable_irq(9)i40e_queue_pair_disable(9)i40e_queue_pair_enable(9)i40e_xdp(9)i40e_config_netdev(9)i40e_vsi_delete(9)i40e_is_vsi_uplink_mode_veb(9)i40e_add_vsi(9)i40e_vsi_release(9)i40e_vsi_setup_vectors(9)i40e_vsi_reinit_setup(9)i40e_vsi_setup(9)i40e_veb_get_bw_info(9)i40e_veb_mem_alloc(9)i40e_switch_branch_release(9)i40e_veb_clear(9)i40e_veb_release(9)i40e_add_veb(9)i40e_veb_setup(9)i40e_setup_pf_switch_element(9)i40e_fetch_switch_configuration(9)i40e_setup_pf_switch(9)i40e_determine_queue_usage(9)i40e_setup_pf_filter_control(9)i40e_get_platform_mac_addr(9)i40e_set_fec_in_flags(9)i40e_check_recovery_mode(9)i40e_pf_loop_reset(9)i40e_check_fw_empr(9)i40e_handle_resets(9)i40e_init_recovery_mode(9)i40e_set_subsystem_device_id(9)i40e_probe(9)i40e_remove(9)i40e_enable_mc_magic_wake(9)i40e_io_suspend(9)i40e_io_resume(9)i40e_pci_error_detected(9)i40e_pci_error_slot_reset(9)i40e_pci_error_reset_prepare(9)i40e_pci_error_reset_done(9)i40e_pci_error_resume(9)i40e_shutdown(9)i40e_suspend(9)i40e_resume(9)i40e_init_module(9)i40e_exit_module(9)
ok bestie real talk: that's the whole reference list, every last one, and I did NOT skip a single one because we don't do that here π respect the friend group.
π the cute lil sign-off π
and that's the page!! π sourced straight from ./drivers/net/ethernet/intel/i40e, dated October 2026, and yes β the version tag is literally just i40e_vsi_request_irq_msix(9) again, because this manual page is its own brand ππ go forth and request those interrupts, bestie. slay. periodt. π¦β¨
π¦ 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