Hi Jerry, On Mon, 22 May 2023 15:31:43 -0600, Jerry Hoemann wrote: > On Mon, May 22, 2023 at 05:11:27PM +0200, Jean Delvare wrote: > > @@ -4451,6 +4461,9 @@ static void dmi_decode(const struct dmi_ > > pr_attr("Thread Count", "%u", > > h->length >= 0x30 && data[0x25] == 0xFF > > ? > > WORD(data + 0x2E) : data[0x25]); > > + if (h->length >= 0x32 && WORD(data + 0x30) != 0) > > + pr_attr("Thread Enabled", "%u", > > + WORD(data + 0x30)); > > dmi_processor_characteristics("Characteristics", > > WORD(data + 0x26)); > > break; > > > Do you know under which conditions FW might fill offset 0x30 with value: > FFFFh = reserved ?
I don't think there is any legitimate use case at the moment (which is why there is no special case for this value in my code). As I understand it, this is a provision for a future extension of this structure. In case, as some point in the future, field "Thread Enabled" is no longer sufficient to accurately describe the hardware, a new field will be added at the end of the structure (like "Thread Count 2" was added by SMBIOS version 3.0 to supplement "Thread Count"). Then value 0xFFFF will be used for "Thread Enabled" and the actual value will be in the new field. To be honest I'd be surprised to ever see a system with more than 65534 cores, so I think this reserved value will simply never be used, but... who knows. -- Jean Delvare SUSE L3 Support