STRUCT ISST_PERF_LEVEL_CPU_MASK(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct isst_perf_level_cpu_mask(9) ✨

okay so bestie, welcome to the Kernel API Manual πŸ’… this one is a whole struct and she is very specific about her fields, so let's get into it 🫢


🌸 NAME 🌸

struct isst_perf_level_cpu_mask β€” the structure you use to get the CPU mask for an SST-PP level πŸ’– like, that's her whole job, and she ate ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

struct isst_perf_level_cpu_mask {
    __u8 socket_id;
    __u8 power_domain_id;
    __u8 level;
    __u8 punit_cpu_map;
    __u64 mask;
    __u16 cpu_buffer_size;
    __s8 cpu_buffer[1];
 };

no cap, that's the whole shape of her πŸ‘‘ copy it exactly, she does not play about the field order 😭


πŸŽ€ Members πŸŽ€

so these are her fields, and each one is a little main character in her own right:

  • socket_id β€” the socket/package id 🌈 like, which socket are we even talking about
  • power_domain_id β€” the Power Domain id ⭐
  • level β€” the SST-PP level you (the caller) want info for πŸ‘‘
  • punit_cpu_map β€” set this to 1 if the CPU number is punit numbering and not Linux CPU number. If it's 0, the CPU buffer gets copied to the user-space-supplied cpu_buffer of size cpu_buffer_size. The punit cpu mask gets copied to the mask field πŸ’€ (yes, she switches modes on you, read it twice fr fr)
  • mask β€” the cpu mask for this PP level (punit CPU numbering) ✨
  • cpu_buffer_size β€” the size of cpu_buffer, and it's also used to return the copied CPU buffer size πŸŒ€ like she's a size and a return value, multitasking icon
  • cpu_buffer β€” the buffer where the CPU mask gets copied when punit_cpu_map is 0 πŸ“

πŸ’œ Description πŸ’œ

so this structure is used to get the cpumask for an SST-PP level using the IOCTL ISST_IF_GET_PERF_LEVEL_CPU_MASK πŸ”₯

she's also used to get the CPU mask for the IOCTL ISST_IF_GET_BASE_FREQ_CPU_MASK for SST-BF 🌸 two gigs, one struct, we love a versatile queen πŸ’…


🧚 SEE ALSO 🧚

Kernel file ./include/uapi/linux/isst_if.h β€” and then the whole friend group, because she does not go anywhere alone:

  • struct isst_if_platform_info(9)
  • struct isst_if_cpu_map(9)
  • struct isst_if_cpu_maps(9)
  • struct isst_if_io_reg(9)
  • struct isst_if_io_regs(9)
  • struct isst_if_mbox_cmd(9)
  • struct isst_if_mbox_cmds(9)
  • struct isst_if_msr_cmd(9)
  • struct isst_if_msr_cmds(9)
  • struct isst_core_power(9)
  • struct isst_clos_param(9)
  • struct isst_if_clos_assoc(9)
  • struct isst_if_clos_assoc_cmds(9)
  • struct isst_tpmi_instance_count(9)
  • struct isst_perf_level_info(9)
  • struct isst_perf_level_control(9)
  • struct isst_perf_feature_control(9)
  • struct isst_perf_level_data_info(9)
  • struct isst_perf_level_fabric_info(9)
  • struct isst_base_freq_info(9)
  • struct isst_turbo_freq_info(9)

like, the whole squad showed up 😭🫢 go read them too, iykyk


ok that's the page bestie πŸ’– she lives in ./include/uapi/linux, she's dated October 2026, and she's filed under struct isst...vel_cpu_mask(9) β€” go get that cpumask, you got this πŸŒŸπŸ‘‘
πŸ“¦ where this page comes from