Page MenuHomeFreeBSD

Add MSR values for RAPL
Needs ReviewPublic

Authored by thj on Mon, May 4, 3:06 PM.
Tags
None
Referenced Files
F156921437: D56790.diff
Sun, May 17, 9:16 AM
Unknown Object (File)
Thu, May 14, 12:46 AM
Unknown Object (File)
Wed, May 13, 7:49 PM
Unknown Object (File)
Wed, May 13, 7:49 PM
Unknown Object (File)
Tue, May 12, 5:14 PM
Unknown Object (File)
Tue, May 12, 2:51 PM
Unknown Object (File)
Tue, May 12, 9:42 AM
Unknown Object (File)
Mon, May 11, 10:04 PM
Subscribers

Details

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 72768
Build 69651: arc lint + arc unit

Event Timeline

thj requested review of this revision.Mon, May 4, 3:06 PM
sys/x86/include/specialreg.h
705

It's apparently 0x66E according to table "Specific MSRs Supported by Intel Atom® Processor C2000 Series with a CPUID Signature DisplayFamily_DisplayModel Value of 06_4DH" in SDM vol 4 for these specific models. For all other models, it's reported as 0x614, as expected. We can ignore this odd one out.

706–708

These are redundant with the additions below.

713–716

Remark: For the MSR_PP0_*, strangely SDM vol 4 almost only mention 0x639 (energy status), so perhaps we should be prepared for 0x638 to be missing even if SDM vol 3 seems to imply it's not optional. MSR_PP0_POLICY is mentioned only once, and MSR_PP0_PERF_STATUS never.

714–718

Typos.

I do have test C2558 w/ the different register offset for the power register AND C3xxx atom boxes (and a lot of non-atom stuff dating back to sandybridge at least) so i'm happy to test this on wahtever you'd like. but yes please do not ignore the "odd one out".

sys/x86/include/specialreg.h
705

err, my gateway and some of my test boxes are literally the C2558 - id = 0x406d8, family=0x6, model=0x4d, stepping=8

So no, you can't ignore this odd one out - it's in a lot of the pfsense and other router boxes from that era. Please handle that appropriately.

but yes please do not ignore the "odd one out".

sys/x86/include/specialreg.h
705

So no, you can't ignore this odd one out - it's in a lot of the pfsense and other router boxes from that era. Please handle that appropriately.

Oh, I thought that these models were obscured ones not really used...

So I looked a bit more, and there's a difference: According to SDM vol 4, MSR 0x66E only has the thermal spec power value in the low 16 bits, and all other info as reported in SDM vol 3 for MSR_PKG_POWER_INFO are absent (min and max power, max time window; those bits are "reserved" in 0x66E, which doesn't even seem to mean we could assume they are 0), but that's really not a big difference in handling.

thj marked 3 inline comments as done.Wed, May 13, 1:03 PM
thj added inline comments.
sys/x86/include/specialreg.h
705

the rapl driver these values are being fed into doesn't support this model

713–716

. MSR_PP0_POLICY is mentioned only once, and MSR_PP0_PERF_STATUS never.

I've no idea where that came from so I will drop it. I tried my best to only implement against the sdm for this.

Remark: For the MSR_PP0_*, strangely SDM vol 4 almost only mention 0x639 (energy status), so perhaps we should be prepared for 0x638 to be missing even if SDM vol 3 seems to imply it's not optional.

We aren't using these yet in rapl. If we have to bundle a bunch of per model support then we can decided which features are worth carrying then.