STRUCT ETHTOOL_PER_QUEUE_OP(9)
okay so this is the glow-up of the struct ethtool_per_queue_op page from the Kernel API Manual, and bestie, it's a whole vibe. it's a struct that lets you yeet one sub command at a bunch of queues at once, all picked out by a mask. no cap, it's giving "batch mode but make it kernel" β¨
π NAME π
struct ethtool_per_queue_op β apply sub command to the queues in mask. that's it, that's the whole thing, and honestly? iconic. π
β¨ SYNOPSIS β¨
here's the shape of it, bestie β look at it, it's gorgeous:
struct ethtool_per_queue_op {
__u32 cmd;
__u32 sub_command;
__u32 queue_mask[__KERNEL_DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
char data[];
};
π¦ Members π¦
cmdβ this one's literallyETHTOOL_PERQUEUE, and that's the whole assignment. it's the "hey, this is the per-queue one" flag. periodt. π«Άsub_commandβ the sub command which apply to each queues. so like, which thing do you wanna do, and yes, it happens to every queue in the mask. π«queue_maskβ Bitmap of the queues which sub command apply to. it's a bitmap, bestie β the queues you light up are the queues that get the treatment. πΈdataβ A complete command structure following for each of the queues addressed. so it's not one little blob, it's one full command structure per queue, stacked up in there. the way that scales π π₯
ngl, the vibe check here is: the mask decides who gets picked, and data has to hold a complete command structure for each of those somebodies. don't sleep on that.
π SEE ALSO π
Kernel file ./include/uapi/linux/ethtool.h β that's home base, the source of truth, go say hi π
and then the whole extended friend group, fr fr:
struct ethtool_cmd(9)struct ethtool_drvinfo(9)struct ethtool_wolinfo(9)struct ethtool_regs(9)struct ethtool_eeprom(9)struct ethtool_eee(9)struct ethtool_modinfo(9)struct ethtool_coalesce(9)struct ethtool_ringparam(9)struct ethtool_channels(9)struct ethtool_pauseparam(9)enum ethtool_stringset(9)enum ethtool_mac_stats_src(9)enum ethtool_module_power_mode_policy(9)enum ethtool_module_power_mode(9)enum ethtool_c33_pse_ext_state(9)enum ethtool_c33_pse_ext_substate_mr_mps_valid(9)enum ethtool_c33_pse_ext_substate_error_condition(9)enum ethtool_c33_pse_ext_substate_mr_pse_enable(9)enum ethtool_c33_pse_ext_substate_option_detect_ted(9)enum ethtool_c33_pse_ext_substate_option_vport_lim(9)enum ethtool_c33_pse_ext_substate_ovld_detected(9)enum ethtool_c33_pse_ext_substate_power_not_available(9)enum ethtool_c33_pse_ext_substate_short_detected(9)enum ethtool_pse_types(9)enum ethtool_c33_pse_admin_state(9)enum ethtool_c33_pse_pw_d_status(9)enum ethtool_podl_pse_admin_state(9)enum ethtool_podl_pse_pw_d_status(9)enum ethtool_mm_verify_status(9)enum ethtool_module_fw_flash_status(9)struct ethtool_gstrings(9)struct ethtool_sset_info(9)enum ethtool_test_flags(9)struct ethtool_test(9)struct ethtool_stats(9)struct ethtool_perm_addr(9)struct ethtool_tcpip4_spec(9)struct ethtool_ah_espip4_spec(9)struct ethtool_usrip4_spec(9)struct ethtool_tcpip6_spec(9)struct ethtool_ah_espip6_spec(9)struct ethtool_usrip6_spec(9)struct ethtool_flow_ext(9)struct ethtool_rx_flow_spec(9)struct ethtool_rxnfc(9)struct ethtool_rxfh_indir(9)struct ethtool_rxfh(9)struct ethtool_rx_ntuple_flow_spec(9)struct ethtool_rx_ntuple(9)struct ethtool_dump(9)struct ethtool_get_features_block(9)struct ethtool_gfeatures(9)struct ethtool_set_features_block(9)struct ethtool_sfeatures(9)struct ethtool_ts_info(9)struct ethtool_fecparam(9)enum ethtool_fec_config_bits(9)struct ethtool_link_settings(9)enum phy_upstream(9)
and that's the whole page, bestie, you ate it up π β¨
cute little sign-off before you go: this one lives under ./include/uapi/linux, it's dated October 2026, and the title on the tin is struct ethtool_per_queue_op(9). mwah π π π¦
π¦ 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