Open dankamongmen opened 3 years ago
mask: 9 size: 134217728 lsize: 64 assoc: 0 lines: 2097152
so everything looks right except the mask (and thus assoc).
cpuid
gets the 16 right, despite decoding 0x80000006 the same way, and having a filter that would print "reserved" for 9. what's up?
actually, no, cpuid
just gets this wrong where we're looking:
L3 cache information (0x80000006/edx):
line size (bytes) = 0x40 (64)
lines per tag = 0x1 (1)
associativity = 0x9 (9)
size (in 512KB units) = 0x100 (256)
it gets it right later, using "Cache Properties" (0x80000001):
(synth size) = 524288 (512 KB)
--- cache 3 ---
type = unified (3)
level = 0x3 (3)
self-initializing = true
fully associative = false
extra cores sharing this cache = 0x7 (7)
line size in bytes = 0x40 (64)
physical line partitions = 0x1 (1)
number of ways = 0x10 (16)
number of sets = 16384
write-back invalidate = true
cache inclusive of lower levels = false
(synth size) = 16777216 (16 MB)
We get to leaf 0x80000006 and our EDX is quite clearly 04009140, as verified with
cpuid -r
:edx=0x04009140
. According to the AMD CPUID guide Revision 2.34,Table 4:
so i don't see how 9 is possibly valid there; the L3 on 3970x is 16-way, so i'd expect 8. what's up?