STRUCT UNCORE_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct uncore_data(9) β€” the kernel API glow-up πŸ¦‹

okay so first things first, bestie: this whole page is from Kernel API Manual, and the star of the show is struct uncore_data β€” literally "Encapsulate all uncore data." that's the NAME, that's the whole vibe. one struct, all the uncore lore, no cap πŸ’–


✨ SYNOPSIS ✨

like, here's the whole thing laid out, and yes you're gonna read every field because we do not skip around here πŸŽ€

struct uncore_data {
    u64 stored_uncore_data;
    u32 initial_min_freq_khz;
    u32 initial_max_freq_khz;
    int control_cpu;
    bool valid;
    int package_id;
    int die_id;
    int domain_id;
    int cluster_id;
    int seqnum_id;
    int instance_id;
    char name[32];
    u16 agent_type_mask;
    struct attribute_group uncore_attr_group;
    struct kobj_attribute max_freq_khz_kobj_attr;
    struct kobj_attribute min_freq_khz_kobj_attr;
    struct kobj_attribute initial_max_freq_khz_kobj_attr;
    struct kobj_attribute initial_min_freq_khz_kobj_attr;
    struct kobj_attribute current_freq_khz_kobj_attr;
    struct kobj_attribute domain_id_kobj_attr;
    struct kobj_attribute fabric_cluster_id_kobj_attr;
    struct kobj_attribute package_id_kobj_attr;
    struct kobj_attribute elc_low_threshold_percent_kobj_attr;
    struct kobj_attribute elc_high_threshold_percent_kobj_attr;
    struct kobj_attribute elc_high_threshold_enable_kobj_attr;
    struct kobj_attribute elc_floor_freq_khz_kobj_attr;
    struct kobj_attribute agent_types_kobj_attr;
    struct kobj_attribute die_id_kobj_attr;
    struct kobj_attribute instance_id_kobj_attr;
    struct attribute *uncore_attrs[16];
};

🌸 Members 🌸

okay so now we go member by member, like a tour of the group chat πŸ’…

  • stored_uncore_data β€” the last user-changed MSR 620 value 🫢. it's kept around so it can be restored on system resume. so it's giving "save point" energy, honestly iconic.
  • initial_min_freq_khz β€” the sampled minimum uncore frequency at driver init ⭐
  • initial_max_freq_khz β€” the sampled maximum uncore frequency at driver init ⭐
  • control_cpu β€” the designated CPU for a die to read/write πŸ‘‘
  • valid β€” marks the data valid/invalid, the little vibe check flag πŸ’€
  • package_id β€” the package id for this instance
  • die_id β€” the die id for this instance
  • domain_id β€” the power domain id for this instance
  • cluster_id β€” the cluster id in a domain
  • seqnum_id β€” a unique sequential id that gets appended to the directory name
  • instance_id β€” die indices or feature instances for a single TPMI device
  • name β€” the sysfs entry name for this instance
  • agent_type_mask β€” a bit mask of all hardware agents for this domain πŸ”₯
  • uncore_attr_group β€” attribute group storage
  • max_freq_khz_kobj_attr β€” storage for the kobject attribute max_freq_khz
  • min_freq_khz_kobj_attr β€” storage for the kobject attribute min_freq_khz
  • initial_max_freq_khz_kobj_attr β€” storage for the kobject attribute initial_max_freq_khz
  • initial_min_freq_khz_kobj_attr β€” storage for the kobject attribute initial_min_freq_khz
  • current_freq_khz_kobj_attr β€” storage for the kobject attribute current_freq_khz
  • domain_id_kobj_attr β€” storage for the kobject attribute domain_id
  • fabric_cluster_id_kobj_attr β€” storage for the kobject attribute fabric_cluster_id
  • package_id_kobj_attr β€” storage for the kobject attribute package_id
  • elc_low_threshold_percent_kobj_attr β€” storage for the kobject attribute elc_low_threshold_percent
  • elc_high_threshold_percent_kobj_attr β€” storage for the kobject attribute elc_high_threshold_percent
  • elc_high_threshold_enable_kobj_attr β€” storage for the kobject attribute elc_high_threshold_enable
  • elc_floor_freq_khz_kobj_attr β€” storage for the kobject attribute elc_floor_freq_khz
  • agent_types_kobj_attr β€” storage for the kobject attribute agent_type
  • die_id_kobj_attr β€” attribute storage for die_id information
  • instance_id_kobj_attr β€” attribute storage for the instance_id value
  • uncore_attrs β€” attribute storage for group creation

πŸ¦‹ Description πŸ¦‹

literally what it says on the tin, bestie: this structure is used to encapsulate all data related to uncore sysfs settings for a die/package. every single sysfs setting, one struct, main character energy πŸ‘‘


🌈 SEE ALSO 🌈

  • Kernel file ./drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.h β€” go read it, iykyk 🧚

lowkey the whole page is one struct and its members, but don't let that fool you β€” it's holding a lot of uncore secrets πŸ’œ

okay that's the page!! and for the sign-off: this is from Kernel API Manual, dated October 2026, and the footer source got cut off at ./drivers/platform/x86/intel/u... β€” so shoutout to that truncated path, we love a mysterious ellipsis πŸ“βœ¨ slay, bye! πŸ’…πŸ«Ά

πŸ“¦ where this page comes from