bnx2x_set_real_num_queues(9)
π bnx2x_set_real_num_queues(9) π
okay so bestie, this is a page from the Kernel API Manual, and it's all about one very specific little function. let's get into it β¨
πΈ NAME πΈ
bnx2x_set_real_num_queues β configure netdev->real_num_[tx,rx]_queues
π SYNOPSIS π
int bnx2x_set_real_num_queues (struct bnx2x *bp , int include_cnic );
π¦ ARGUMENTS π¦
bpβ Driver handleinclude_cnicβ handle cnic case
β¨ DESCRIPTION β¨
So rn we support at most 16 Tx queues for each CoS, which means we're gonna allocate a multiple of 16 for ETH L2 rings according to the value of the bp->max_cos. periodt π
If there's an FCoE L2 queue, the appropriate Tx queue gets the next index after all the ETH L2 indices. no cap.
If the actual number of Tx queues (for each CoS) is less than 16, then there are gonna be holes at the end of each group of 16 ETH L2 indices β like 0..15, 16..31, and so on β with indices that are not coupled with any real Tx queue. it's giving gaps, but make it intentional π«Ά
The proper configuration of skb->queue_mapping is handled by bnx2x_select_queue and __skb_tx_hash. iconic behaviour tbh.
And bnx2x_setup_tc takes care of the proper TC mappings so that __skb_tx_hash will return a proper Tx index if TC is enabled (netdev->num_tc > 0). slay π₯
π SEE ALSO π
Kernel file ./drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
bnx2x_move_fp(9)bnx2x_fill_fw_str(9)bnx2x_shrink_eth_fp(9)bnx2x_set_gro_params(9)bnx2x_fill_report_data(9)bnx2x_link_report(9)__bnx2x_link_report(9)bnx2x_free_msix_irqs(9)bnx2x_bz_fp(9)bnx2x_set_pbd_gso(9)bnx2x_set_pbd_csum_enc(9)bnx2x_set_pbd_csum_e2(9)bnx2x_set_pbd_csum(9)bnx2x_setup_tc(9)
okay that's the whole vibe π shoutout to the source/version ./drivers/net/ethernet/broadco... and the date October 2026 β mwah, bye bestie ππ
π¦ 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