STRUCT UNCORE_DATA(9)
π 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 instancedie_idβ the die id for this instancedomain_idβ the power domain id for this instancecluster_idβ the cluster id in a domainseqnum_idβ a unique sequential id that gets appended to the directory nameinstance_idβ die indices or feature instances for a single TPMI devicenameβ the sysfs entry name for this instanceagent_type_maskβ a bit mask of all hardware agents for this domain π₯uncore_attr_groupβ attribute group storagemax_freq_khz_kobj_attrβ storage for the kobject attributemax_freq_khzmin_freq_khz_kobj_attrβ storage for the kobject attributemin_freq_khzinitial_max_freq_khz_kobj_attrβ storage for the kobject attributeinitial_max_freq_khzinitial_min_freq_khz_kobj_attrβ storage for the kobject attributeinitial_min_freq_khzcurrent_freq_khz_kobj_attrβ storage for the kobject attributecurrent_freq_khzdomain_id_kobj_attrβ storage for the kobject attributedomain_idfabric_cluster_id_kobj_attrβ storage for the kobject attributefabric_cluster_idpackage_id_kobj_attrβ storage for the kobject attributepackage_idelc_low_threshold_percent_kobj_attrβ storage for the kobject attributeelc_low_threshold_percentelc_high_threshold_percent_kobj_attrβ storage for the kobject attributeelc_high_threshold_percentelc_high_threshold_enable_kobj_attrβ storage for the kobject attributeelc_high_threshold_enableelc_floor_freq_khz_kobj_attrβ storage for the kobject attributeelc_floor_freq_khzagent_types_kobj_attrβ storage for the kobject attributeagent_typedie_id_kobj_attrβ attribute storage fordie_idinformationinstance_id_kobj_attrβ attribute storage for theinstance_idvalueuncore_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
- 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