i40e_vsi_free_q_vectors(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’– NAME ๐Ÿ’–

i40e_vsi_free_q_vectors โ€” bestie, this one frees the memory that was allocated for the interrupt vectors โœจ


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

void i40e_vsi_free_q_vectors (struct i40e_vsi *vsi );

๐Ÿฆ‹ ARGUMENTS ๐Ÿฆ‹

  • vsi โ€” the VSI that's currently being un-configured, aka the thing we're packing up ๐Ÿ’…

๐ŸŒธ DESCRIPTION ๐ŸŒธ

Okay so real talk: this function frees the memory that was allocated to the q_vectors, and it also deletes the references to the NAPI struct. That's the whole vibe check โ€” memory goes bye-bye, NAPI references get cleaned out. Periodt ๐Ÿซถ


โญ SEE ALSO โญ

Everything below is in the kernel file ./drivers/net/ethernet/intel/i40e/i40e_main.c, and honestly? The friend group is huge. No cap, here's the whole roster ๐Ÿ’€

  • ./drivers/net/ethernet/intel/i40e/i40e_main.c โ€” the kernel file where all of this lives ๐Ÿ 
  • i40e_hw_to_dev, i40e_allocate_dma_mem, i40e_free_dma_mem, i40e_allocate_virt_mem, i40e_free_virt_mem, i40e_get_lump โ€” the memory-management girlies ๐Ÿงš
  • i40e_put_lump, i40e_find_vsi_from_id, i40e_service_event_schedule, i40e_tx_timeout, i40e_get_vsi_stats_struct, i40e_get_netdev_stats_struct_tx โ€” the lookup and stats crew ๐Ÿ‘‘
  • i40e_get_netdev_stats_struct, i40e_vsi_reset_stats, i40e_pf_reset_stats, i40e_compute_pci_to_hw_id, i40e_stat_update64, i40e_stat_update48 โ€” numbers besties, so many numbers ๐Ÿ”ฅ
  • i40e_stat_update32, i40e_stat_update_and_clear32, i40e_stats_update_rx_discards, i40e_update_eth_stats, i40e_update_veb_stats, i40e_update_vsi_stats โ€” more updating, we stay busy ๐Ÿ’…
  • i40e_update_pf_stats, i40e_update_stats, i40e_count_all_filters, i40e_count_active_filters, i40e_find_filter, i40e_find_mac โ€” filter-hunting squad ๐Ÿ”
  • i40e_is_vsi_in_vlan, i40e_correct_mac_vlan_filters, i40e_get_vf_new_vlan, i40e_correct_vf_mac_vlan_filters, i40e_rm_default_mac_filter, i40e_add_filter โ€” the MAC/VLAN correction committee โœจ
  • __i40e_del_filter, i40e_add_mac_filter, i40e_del_mac_filter, i40e_set_mac, i40e_config_rss_aq, i40e_vsi_config_rss โ€” add it, delete it, RSS it ๐ŸŒˆ
  • i40e_vsi_setup_queue_map_mqprio, i40e_vsi_setup_queue_map, i40e_addr_sync, i40e_addr_unsync, i40e_set_rx_mode, i40e_undo_del_filter_entries โ€” queue map + address sync icons ๐ŸŽ€
  • i40e_undo_add_filter_entries, i40e_next_filter, i40e_update_filter_state, i40e_aqc_del_filters, i40e_aqc_add_filters, i40e_aqc_broadcast_filter โ€” the aqc filter girlies ๐Ÿฆ‹
  • i40e_set_promiscuous, i40e_sync_vsi_filters, i40e_sync_filters_subtask, i40e_calculate_vsi_rx_buf_len, i40e_max_vsi_frame_size, i40e_change_mtu โ€” sync + sizing, iconic behavior ๐Ÿ’œ
  • i40e_vlan_stripping_enable, i40e_vlan_stripping_disable, i40e_add_vlan_all_mac, i40e_vsi_add_vlan, i40e_rm_vlan_all_mac, i40e_vsi_kill_vlan โ€” VLAN on, VLAN off, we contain multitudes ๐Ÿ’€
  • i40e_vlan_rx_add_vid, i40e_vlan_rx_add_vid_up, i40e_vlan_rx_kill_vid, i40e_restore_vlan, i40e_vsi_add_pvid, i40e_vsi_remove_pvid โ€” vid stuff and pvid stuff, slay ๐ŸŒธ
  • i40e_vsi_setup_tx_resources, i40e_vsi_free_tx_resources, i40e_vsi_setup_rx_resources, i40e_vsi_free_rx_resources, i40e_config_xps_tx_ring, i40e_xsk_pool โ€” resources setup/free duo, they ate ๐Ÿ”ฅ
  • i40e_configure_tx_ring, i40e_rx_offset, i40e_configure_rx_ring, i40e_vsi_configure_tx, i40e_vsi_configure_rx, i40e_vsi_config_dcb_rings โ€” ring configuring main characters ๐Ÿ’…
  • i40e_set_vsi_rx_mode, i40e_reset_fdir_filter_cnt, i40e_fdir_filter_restore, i40e_vsi_configure, i40e_vsi_configure_msix, i40e_enable_misc_int_causes โ€” configure arc, msix girlies ๐Ÿงš
  • i40e_configure_msi_and_legacy, i40e_irq_dynamic_disable_icr0, i40e_irq_dynamic_enable_icr0, i40e_msix_clean_rings, i40e_irq_affinity_notify, i40e_irq_affinity_release โ€” irq dynamic enable/disable + affinity besties โญ
  • i40e_vsi_request_irq_msix, i40e_vsi_disable_irq, i40e_vsi_enable_irq, i40e_free_misc_vector, i40e_intr, i40e_clean_fdir_tx_irq โ€” interrupts, on and off, forever ๐ŸŽ€
  • i40e_fdir_clean_ring, i40e_map_vector_to_qp, i40e_vsi_map_rings_to_vectors, i40e_vsi_request_irq, i40e_netpoll, i40e_pf_txq_wait โ€” mapping rings to vectors, iykyk ๐Ÿฆ‹
  • i40e_control_tx_q, i40e_control_wait_tx_q, i40e_vsi_enable_tx, i40e_pf_rxq_wait, i40e_control_rx_q, i40e_control_wait_rx_q โ€” control it, wait for it, iconic ๐ŸŒˆ
  • i40e_vsi_enable_rx, i40e_vsi_start_rings, i40e_vsi_stop_rings, i40e_vsi_stop_rings_no_wait, i40e_vsi_free_irq, i40e_free_q_vector โ€” rings start/stop + free, very our era ๐Ÿ’œ
  • i40e_reset_interrupt_capability, i40e_clear_interrupt_scheme, i40e_napi_enable_all, i40e_napi_disable_all, i40e_vsi_close, i40e_quiesce_vsi โ€” NAPI enable-all/disable-all SUPREMACY ๐Ÿ‘‘
  • i40e_unquiesce_vsi, i40e_pf_quiesce_all_vsi, i40e_pf_unquiesce_all_vsi, i40e_vsi_wait_queues_disabled, i40e_pf_wait_queues_disabled, i40e_get_iscsi_tc_map โ€” quiesce/unquiesce bestie duo ๐Ÿซถ
  • i40e_dcb_get_num_tc, i40e_dcb_get_enabled_tc, i40e_mqprio_get_enabled_tc, i40e_pf_get_num_tc, i40e_pf_get_tc_map, i40e_vsi_get_bw_info โ€” TC map girlies, getters only ๐Ÿ’…
  • i40e_vsi_configure_bw_alloc, i40e_vsi_config_netdev_tc, i40e_vsi_update_queue_map, i40e_update_adq_vsi_queues, i40e_vsi_config_tc, i40e_vsi_reconfig_tc โ€” bandwidth + TC configuring, we stay booked ๐Ÿ”ฅ
  • i40e_get_link_speed, i40e_bw_bytes_to_mbits, i40e_set_bw_limit, i40e_remove_queue_channels, i40e_get_max_queues_for_channel, i40e_validate_num_queues โ€” speed, limits, channel math ๐Ÿงฎ
  • i40e_vsi_reconfig_rss, i40e_channel_setup_queue_map, i40e_add_channel, i40e_channel_config_tx_ring, i40e_setup_hw_channel, i40e_setup_channel โ€” channel setup squad, obsessed โœจ
  • i40e_validate_and_set_switch_mode, i40e_create_queue_channel, i40e_configure_queue_channels, i40e_veb_config_tc, i40e_dcb_reconfigure, i40e_resume_port_tx โ€” switch mode + veb TC, very demure ๐ŸŒธ
  • i40e_suspend_port_tx, i40e_hw_set_dcb_config, i40e_hw_dcb_config, i40e_dcb_sw_default_config, i40e_init_pf_dcb, i40e_print_link_message โ€” DCB config everything, no cap ๐Ÿฆ‹
  • i40e_up_complete, i40e_vsi_reinit_locked, i40e_force_link_state, i40e_up, i40e_down, i40e_validate_mqprio_qopt โ€” up, down, reinit, the whole cycle ๐Ÿ’€
  • i40e_vsi_set_default_tc_config, i40e_del_macvlan_filter, i40e_add_macvlan_filter, i40e_reset_ch_rings, i40e_free_macvlan_channels, i40e_fwd_ring_up โ€” macvlan filter girlies ๐ŸŽ€
  • i40e_setup_macvlans, i40e_fwd_add, i40e_del_all_macvlans, i40e_fwd_del, i40e_setup_tc, i40e_set_cld_element โ€” macvlan add/del + tc setup โญ
  • i40e_add_del_cloud_filter, i40e_add_del_cloud_filter_big_buf, i40e_parse_cls_flower, i40e_handle_tclass, i40e_configure_clsflower, i40e_find_cloud_filter โ€” cloud filter + flower parsing, fancy ๐ŸŒบ
  • i40e_delete_clsflower, i40e_setup_tc_cls_flower, i40e_open, i40e_netif_set_realnum_tx_rx_queues, i40e_vsi_open, i40e_fdir_filter_exit โ€” open up, exit out ๐Ÿ’…
  • i40e_cloud_filter_exit, i40e_close, i40e_do_reset, i40e_dcb_need_reconfig, i40e_handle_lldp_event, i40e_do_reset_safe โ€” reset + lldp event handling, iconic ๐Ÿงš
  • i40e_handle_lan_overflow_event, i40e_get_current_fd_count, i40e_get_global_fd_count, i40e_reenable_fdir_sb, i40e_reenable_fdir_atr, i40e_delete_invalid_filter โ€” fdir counters + reenables ๐Ÿ”ฅ
  • i40e_fdir_check_and_reenable, i40e_fdir_flush_and_replay, i40e_get_current_atr_cnt, i40e_fdir_reinit_subtask, i40e_vsi_link_event, i40e_veb_link_event โ€” flush, replay, reinit, ate ๐Ÿซถ
  • i40e_link_event, i40e_watchdog_subtask, i40e_reset_subtask, i40e_handle_link_event, i40e_clean_adminq_subtask, i40e_verify_eeprom โ€” subtask besties, always working ๐Ÿ’€
  • i40e_enable_pf_switch_lb, i40e_disable_pf_switch_lb, i40e_config_bridge_mode, i40e_reconstitute_veb, i40e_get_capabilities, i40e_fdir_sb_setup โ€” switch lb enable/disable girlies ๐ŸŒˆ
  • i40e_fdir_teardown, i40e_rebuild_cloud_filters, i40e_rebuild_channels, i40e_clean_xps_state, i40e_prep_for_reset, i40e_send_version โ€” teardown + rebuild, lowkey chaotic ๐Ÿ’œ
  • i40e_get_oem_version, i40e_reset, i40e_rebuild, i40e_reset_and_rebuild, i40e_handle_reset_warning, i40e_print_vf_mdd_event โ€” reset arc, main character energy ๐Ÿ‘‘
  • i40e_print_vfs_mdd_events, i40e_handle_mdd_event, i40e_service_task, i40e_service_timer, i40e_set_num_rings_in_vsi, i40e_vsi_alloc_arrays โ€” service task + alloc arrays, slay โœจ
  • i40e_vsi_mem_alloc, i40e_vsi_free_arrays, i40e_clear_rss_config_user, i40e_vsi_clear, i40e_vsi_clear_rings, i40e_alloc_rings โ€” mem alloc/free + ring clearing ๐ŸŽ€
  • i40e_reserve_msix_vectors, i40e_init_msix, i40e_vsi_alloc_q_vector, i40e_vsi_alloc_q_vectors, i40e_init_interrupt_scheme, i40e_restore_interrupt_scheme โ€” msix + q_vector alloc, literally us ๐Ÿฆ‹
  • i40e_setup_misc_vector_for_recovery_mode, i40e_setup_misc_vector, i40e_get_rss_aq, i40e_config_rss_reg, i40e_get_rss_reg, i40e_config_rss โ€” RSS everything, get it and config it ๐ŸŒธ
  • i40e_get_rss, i40e_fill_rss_lut, i40e_pf_config_rss, i40e_reconfig_rss_queues, i40e_get_partition_bw_setting, i40e_set_partition_bw_setting โ€” LUT + partition bw, obsessed ๐Ÿ”ฅ
  • i40e_is_total_port_shutdown_enabled, i40e_sw_init, i40e_set_ntuple, i40e_clear_rss_lut, i40e_set_loopback, i40e_set_features โ€” features + loopback girlies ๐Ÿ’…
  • i40e_ndo_fdb_add, i40e_ndo_bridge_setlink, i40e_ndo_bridge_getlink, i40e_features_check, i40e_xdp_setup, i40e_enter_busy_conf โ€” ndo crew + xdp setup โญ
  • i40e_exit_busy_conf, i40e_queue_pair_reset_stats, i40e_queue_pair_clean_rings, i40e_queue_pair_toggle_napi, i40e_queue_pair_toggle_rings, i40e_queue_pair_enable_irq โ€” queue pair squad, so many toggles ๐Ÿ’€
  • i40e_queue_pair_disable_irq, i40e_queue_pair_disable, i40e_queue_pair_enable, i40e_xdp, i40e_config_netdev, i40e_vsi_delete โ€” enable/disable + netdev config ๐Ÿงš
  • i40e_is_vsi_uplink_mode_veb, i40e_add_vsi, i40e_vsi_release, i40e_vsi_setup_vectors, i40e_vsi_reinit_setup, i40e_vsi_setup โ€” VSI lifecycle icons ๐Ÿซถ
  • i40e_veb_get_bw_info, i40e_veb_mem_alloc, i40e_switch_branch_release, i40e_veb_clear, i40e_veb_release, i40e_add_veb โ€” VEB besties, clear/release/add ๐Ÿ’œ
  • i40e_veb_setup, i40e_setup_pf_switch_element, i40e_fetch_switch_configuration, i40e_setup_pf_switch, i40e_determine_queue_usage, i40e_setup_pf_filter_control โ€” switch setup + queue usage ๐ŸŒˆ
  • i40e_get_platform_mac_addr, i40e_set_fec_in_flags, i40e_check_recovery_mode, i40e_pf_loop_reset, i40e_check_fw_empr, i40e_handle_resets โ€” platform addr + recovery mode checking ๐ŸŽ€
  • i40e_init_recovery_mode, i40e_set_subsystem_device_id, i40e_probe, i40e_remove, i40e_enable_mc_magic_wake, i40e_io_suspend โ€” probe/remove + magic wake, iconic ๐Ÿ‘‘
  • i40e_io_resume, i40e_pci_error_detected, i40e_pci_error_slot_reset, i40e_pci_error_reset_prepare, i40e_pci_error_reset_done, i40e_pci_error_resume โ€” the whole PCI error arc, no skips ๐Ÿ’…
  • i40e_shutdown, i40e_suspend, i40e_resume, i40e_init_module, i40e_exit_module โ€” and the final boss trio + module init/exit ๐Ÿ”ฅ

And that's the post ๐Ÿซถ huge thank you to ./drivers/net/ethernet/intel/i40e, dated October 2026 โ€” ilysm, mwah ๐Ÿ’–โœจ๐ŸŽ€

๐Ÿ“ฆ where this page comes from