ice_sched_init_port(9)
π ice_sched_init_port(9)
hiii bestie, welcome to the Kernel API Manual entry for ice_sched_init_port β yep, that's the manual name, and yes this whole page is basically about one (1) function that gets the scheduler party started π
β¨ NAME β¨
ice_sched_init_port β initializes the scheduler by querying information from FW π¦
okay so "FW" is firmware, and this function is like that friend who texts the group chat to find out where everybody is before the plan can even start. no cap.
πΈ SYNOPSIS πΈ
int ice_sched_init_port (struct ice_port_info *pi );
π§ ARGUMENTS π§
piβ port info structure for the tree to cleanup π
(that's literally what the docs say it is, bestie β the port info struct that's holding the tree situation. give it the respect it deserves π)
β DESCRIPTION β
so this is the initial call, the main character moment π₯ it's the first thing that runs in the whole scheduler-init storyline.
what it does, step by step, no skips:
- it finds the total number of Tx scheduler resources β like, how many are even available to play with β¨
- it grabs the default topology created by firmware β FW already set up a whole vibe, we're just learning what it is π«Ά
- and it stores all that information in the SW DB β software database, so it's remembered and doesn't have to go ask FW again π
that's it. that's the function. it's giving "first day of school, gotta learn everybody's names" energy π
π SEE ALSO π
first up, the kernel file where all the magic lives:
./drivers/net/ethernet/intel/ice/ice_sched.c
and now the full cast, absolutely iconic, not one of them left out π (all section 9, all verbatim, iykyk):
ice_sched_add_root_node(9)ice_sched_find_node_by_teid(9)ice_sched_find_next_vsi_node(9)ice_aqc_send_sched_elem_cmd(9)ice_aq_query_sched_elems(9)ice_sched_add_node(9)ice_aq_delete_sched_elems(9)ice_sched_remove_elems(9)ice_sched_get_first_node(9)ice_sched_get_tc_node(9)ice_free_sched_node(9)ice_aq_get_dflt_topo(9)ice_aq_add_sched_elems(9)ice_aq_cfg_sched_elems(9)ice_aq_move_sched_elems(9)ice_aq_suspend_sched_elems(9)ice_aq_resume_sched_elems(9)ice_aq_query_sched_res(9)ice_sched_suspend_resume_elems(9)ice_alloc_lan_q_ctx(9)ice_alloc_rdma_q_ctx(9)ice_aq_rl_profile(9)ice_aq_add_rl_profile(9)ice_aq_remove_rl_profile(9)ice_sched_del_rl_profile(9)ice_sched_clear_rl_prof(9)ice_sched_clear_agg(9)ice_sched_clear_tx_topo(9)ice_sched_clear_port(9)ice_sched_cleanup_all(9)ice_sched_add_elems(9)ice_sched_add_nodes_to_hw_layer(9)ice_sched_add_nodes_to_layer(9)ice_sched_get_qgrp_layer(9)ice_sched_get_vsi_layer(9)ice_sched_get_agg_layer(9)ice_rm_dflt_leaf_node(9)ice_sched_rm_dflt_nodes(9)ice_sched_query_res_alloc(9)ice_sched_get_psm_clk_freq(9)ice_sched_find_node_in_subtree(9)ice_sched_get_free_qgrp(9)ice_sched_get_free_qparent(9)ice_sched_get_vsi_node(9)ice_sched_get_agg_node(9)ice_sched_calc_vsi_child_nodes(9)ice_sched_add_vsi_child_nodes(9)ice_sched_calc_vsi_support_nodes(9)ice_sched_add_vsi_support_nodes(9)ice_sched_add_vsi_to_topo(9)ice_sched_recalc_vsi_support_nodes(9)ice_sched_update_vsi_child_nodes(9)ice_sched_cfg_vsi(9)ice_sched_rm_agg_vsi_info(9)ice_sched_is_leaf_node_present(9)ice_sched_rm_vsi_subtree(9)ice_sched_rm_vsi_cfg(9)ice_rm_vsi_lan_cfg(9)ice_rm_vsi_rdma_cfg(9)ice_get_agg_info(9)ice_sched_get_free_vsi_parent(9)ice_sched_update_parent(9)ice_sched_move_nodes(9)ice_sched_move_vsi_to_agg(9)ice_move_all_vsi_to_dflt_agg(9)ice_sched_is_agg_inuse(9)ice_sched_rm_agg_cfg(9)ice_rm_agg_cfg_tc(9)ice_save_agg_tc_bitmap(9)ice_sched_add_agg_cfg(9)ice_sched_cfg_agg(9)ice_cfg_agg(9)ice_get_agg_vsi_info(9)ice_get_vsi_agg_info(9)ice_save_agg_vsi_tc_bitmap(9)ice_sched_assoc_vsi_to_agg(9)ice_sched_rm_unused_rl_prof(9)ice_sched_update_elem(9)ice_sched_cfg_node_bw_alloc(9)ice_move_vsi_to_agg(9)ice_set_clear_cir_bw(9)ice_set_clear_eir_bw(9)ice_set_clear_shared_bw(9)ice_sched_save_vsi_bw(9)ice_sched_calc_wakeup(9)ice_sched_bw_to_rl_profile(9)ice_sched_add_rl_profile(9)ice_sched_cfg_node_bw_lmt(9)ice_sched_get_node_rl_prof_id(9)ice_sched_get_rl_prof_layer(9)ice_sched_get_srl_node(9)ice_sched_rm_rl_profile(9)ice_sched_set_node_bw_dflt(9)ice_sched_set_eir_srl_excl(9)ice_sched_set_node_bw(9)ice_sched_set_node_priority(9)ice_sched_set_node_weight(9)ice_sched_set_node_bw_lmt(9)ice_sched_set_node_bw_dflt_lmt(9)ice_sched_validate_srl_node(9)ice_sched_save_q_bw(9)ice_sched_set_q_bw_lmt(9)ice_cfg_q_bw_lmt(9)ice_cfg_q_bw_dflt_lmt(9)ice_sched_get_node_by_id_type(9)ice_sched_set_node_bw_lmt_per_tc(9)ice_cfg_vsi_bw_lmt_per_tc(9)ice_cfg_vsi_bw_dflt_lmt_per_tc(9)ice_cfg_rl_burst_size(9)ice_sched_replay_node_prio(9)ice_sched_replay_node_bw(9)ice_sched_get_ena_tc_bitmap(9)ice_sched_replay_agg(9)ice_sched_replay_agg_vsi_preinit(9)ice_sched_replay_vsi_agg(9)ice_replay_vsi_agg(9)ice_sched_replay_q_bw(9)
like i said β the whole cast. nobody cut from the group photo πΈπ
aaaand that's the page bestie π«Ά this one came out of the Kernel API Manual, lives under ./drivers/net/ethernet/intel/ice, and is dated October 2026 β so yeah, go read ice_sched.c and slay β¨π
π
π¦ 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