i40e_reset_all_vfs(9)
β¨ i40e_reset_all_vfs β Kernel API Manual energy π
Okay bestie, buckle up, because this one is a little kernel-side baddie from the Kernel API Manual, and you're gonna get it on the first read, iykyk π
π NAME
So the original page is literally just:
i40e_reset_all_vfs -
and then nothing. A whole dash. Iconic of it, honestly π«Ά β no one-line summary was given, so I'm not gonna invent one for you. What I can tell you is the function's name is i40e_reset_all_vfs, and the actual what-it-does lives down in DESCRIPTION. Keep scrolling πΈ
β¨ SYNOPSIS
Here's the whole signature, copy-pasted exactly so you know it's fr fr:
bool i40e_reset_all_vfs (struct i40e_pf *pf , bool flr );
Two args, one bool coming back at you. That's the whole vibe π
π¦ ARGUMENTS
pfβ a pointer to the PF structure. Yes, PF, as in the physical function, the main-character of this whole file πflrβ tells you whether a VFLR was issued or not. That's it, that's the flag π
π₯ DESCRIPTION
Okay so the assignment here is: reset all allocated VFs in one go. No serialized drip-feed, no one-at-a-time nonsense π
The way it goes down, in order:
- First, tell the hardware to reset each VF.
- Then do all the waiting in one single chunk β one big wait, not a million tiny ones β
- Finally, finish restoring each VF after the wait.
Why is this a slay? Because during PF routines that need to reset all VFs, this is the move β otherwise you'd have to perform these resets in a serialized fashion, one after another, which is lowkey giving "waiting in line at the DMV" π This function ate and left no crumbs.
Returnstrueif any VFs were reset, andfalseotherwise. That's the return contract, no cap π
πΈ SEE ALSO
The source file it lives in, bestie:
./drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
And here's the entire crew of related kernel API pages, in the exact order the original lists them β all 95 of them, because I would never do you dirty like that π
i40e_vc_vf_broadcast(9)i40e_vc_link_speed2mbps(9)i40e_set_vf_link_state(9)i40e_vc_notify_vf_link_state(9)i40e_vc_notify_link_state(9)i40e_vc_notify_reset(9)i40e_vc_notify_vf_reset(9)i40e_vc_reset_vf(9)i40e_vc_isvalid_vsi_id(9)i40e_vc_isvalid_queue_id(9)i40e_vc_isvalid_vector_id(9)i40e_vc_get_pf_queue_id(9)i40e_get_real_pf_qid(9)i40e_config_irq_link_list(9)i40e_release_rdma_qvlist(9)i40e_config_rdma_qvlist(9)i40e_config_vsi_tx_queue(9)i40e_config_vsi_rx_queue(9)i40e_alloc_vsi_res(9)i40e_map_pf_queues_to_vsi(9)i40e_map_pf_to_vf_queues(9)i40e_enable_vf_mappings(9)i40e_disable_vf_mappings(9)i40e_free_vf_res(9)i40e_alloc_vf_res(9)i40e_quiesce_vf_pci(9)__i40e_getnum_vf_vsi_vlan_filters(9)i40e_getnum_vf_vsi_vlan_filters(9)i40e_get_vlan_list_sync(9)i40e_set_vsi_promisc(9)i40e_config_vf_promiscuous_mode(9)i40e_sync_vfr_reset(9)i40e_trigger_vf_reset(9)i40e_cleanup_reset_vf(9)i40e_reset_vf(9)i40e_free_vfs(9)i40e_alloc_vfs(9)i40e_pci_sriov_enable(9)i40e_pci_sriov_configure(9)i40e_vc_send_msg_to_vf(9)i40e_vc_send_resp_to_vf(9)i40e_sync_vf_state(9)i40e_vc_get_version_msg(9)i40e_del_qch(9)i40e_vc_get_max_frame_size(9)i40e_vc_get_vf_resources_msg(9)i40e_vc_config_promiscuous_mode_msg(9)i40e_vc_config_queues_msg(9)i40e_validate_queue_map(9)i40e_vc_config_irq_map_msg(9)i40e_ctrl_vf_tx_rings(9)i40e_ctrl_vf_rx_rings(9)i40e_vc_validate_vqs_bitmaps(9)i40e_vc_enable_queues_msg(9)i40e_vc_disable_queues_msg(9)i40e_check_enough_queue(9)i40e_vc_request_queues_msg(9)i40e_vc_get_stats_msg(9)i40e_check_vf_permission(9)i40e_vc_ether_addr_type(9)i40e_is_vc_addr_legacy(9)i40e_is_vc_addr_primary(9)i40e_update_vf_mac_addr(9)i40e_vc_add_mac_addr_msg(9)i40e_vc_del_mac_addr_msg(9)i40e_vc_add_vlan_msg(9)i40e_vc_remove_vlan_msg(9)i40e_vc_rdma_msg(9)i40e_vc_rdma_qvmap_msg(9)i40e_vc_config_rss_key(9)i40e_vc_config_rss_lut(9)i40e_vc_get_rss_hashcfg(9)i40e_vc_set_rss_hashcfg(9)i40e_vc_enable_vlan_stripping(9)i40e_vc_disable_vlan_stripping(9)i40e_validate_cloud_filter(9)i40e_find_vsi_from_seid(9)i40e_del_all_cloud_filters(9)i40e_vc_del_cloud_filter(9)i40e_vc_add_cloud_filter(9)i40e_vc_add_qch_msg(9)i40e_vc_del_qch_msg(9)i40e_vc_process_vf_msg(9)i40e_vc_process_vflr_event(9)i40e_validate_vf(9)i40e_check_vf_init_timeout(9)i40e_ndo_set_vf_mac(9)i40e_ndo_set_vf_port_vlan(9)i40e_ndo_set_vf_bw(9)i40e_ndo_get_vf_config(9)i40e_ndo_set_vf_link_state(9)i40e_ndo_set_vf_spoofchk(9)i40e_setup_vf_trust(9)i40e_ndo_set_vf_trust(9)i40e_get_vf_stats(9)
And that's the whole page, bestie π§ Go forth and reset those VFs, and remember: hardware first, wait once, restore after. Periodt. π
Mwah π β this cutie came from the ./drivers/net/ethernet/intel/i40e source, dated October 2026, and yes the page is literally named i40e_reset_all_vfs(9) in case you forgot already π
π¦ 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