STRUCT IDPF_VECTOR_LIFO(9)
π struct idpf_vector_lifo(9) π
okay so bestie, welcome to the manual page for struct idpf_vector_lifo β that's the stack to maintain vector indexes used for vector distribution algorithm, and yes we're reading kernel docs together, it's giving study date energy π
β¨ SYNOPSIS β¨
struct idpf_vector_lifo {
u16 top;
u16 base;
u16 size;
u16 *vec_idx;
};
πΈ Members πΈ
topβ points to the stack top, aka the next available vector index πbaseβ always points to the start of the free pool, no cap, it never movessizeβ the total size of the vector stack, the whole vibe checkvec_idxβ the array that stores all the vector indexes ποΈ
π¦ Description π¦
so the vector stack keeps track of all the relative vector indexes at the adapter level, iykyk π
this stack is split into 2 parts: the first one is called the 'default pool' and the other one is called the 'free pool' β two pools, one stack, main character energy fr fr β¨
the vector distribution algorithm gives priority to default vports, in a way that at least IDPF_MIN_Q_VEC vectors are allocated per default vport, and the relative vector indexes for those are maintained in the default pool. meanwhile the free pool contains all the unallocated vector indexes which can be allocated on-demand basis β like, whenever, bestie π
also! the mailbox vector index is maintained in the default pool of the stack. slay. periodt. π
β SEE ALSO β
kernel file ./drivers/net/ethernet/intel/idpf/idpf.h, plus literally this whole friend group:
struct idpf_mac_filter(9)enum idpf_state(9)enum idpf_flags(9)enum idpf_cap_field(9)enum idpf_vport_state(9)struct idpf_netdev_priv(9)struct idpf_reset_reg(9)struct idpf_vport_max_q(9)struct idpf_reg_ops(9)struct idpf_dev_ops(9)enum idpf_vport_reset_cause(9)enum idpf_vport_flags(9)struct idpf_tstamp_stats(9)struct idpf_q_vec_rsrc(9)struct idpf_vport(9)enum idpf_user_flags(9)struct idpf_rss_data(9)struct idpf_q_coalesce(9)struct idpf_vport_user_config_data(9)enum idpf_vport_config_flags(9)struct idpf_avail_queue_info(9)struct idpf_vector_info(9)struct idpf_queue_id_reg_chunk(9)struct idpf_queue_id_reg_info(9)struct idpf_vport_config(9)struct idpf_adapter(9)idpf_is_queue_model_split(9)idpf_is_rdma_cap_ena(9)idpf_get_reserved_vecs(9)idpf_get_reserved_rdma_vecs(9)idpf_get_default_vports(9)idpf_get_max_vports(9)idpf_get_max_tx_bufs(9)idpf_get_min_tx_pkt_len(9)idpf_is_reset_detected(9)idpf_is_reset_in_prog(9)idpf_netdev_to_vport(9)idpf_netdev_to_adapter(9)idpf_is_feature_ena(9)idpf_get_max_tx_hdr_size(9)idpf_vport_ctrl_lock(9)idpf_vport_ctrl_unlock(9)
k that's the whole page bestie, no gatekeeping, every single reference is here π«Ά
and that's a wrap!! this one lives in ./drivers/net/ethernet/intel/idpf, dated October 2026, manual page struct idpf_vector_lifo(9) β go off, queen ππ
π¦ 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