rewrite amd64 printing of cache details
authorjsg <jsg@openbsd.org>
Tue, 28 Jun 2022 12:11:41 +0000 (12:11 +0000)
committerjsg <jsg@openbsd.org>
Tue, 28 Jun 2022 12:11:41 +0000 (12:11 +0000)
commit831d3bf0084fd5808255fdf36a80a8f7b74a5e6f
tree8cb56176ba8306e7933d4f4c2aac1abded7192ae
parent91f94aa5d21371bda16e0b45f6328f83d28c2996
rewrite amd64 printing of cache details

Previously we looked at cpuid 0x80000005 for L1/TLB details
which Intel documents as reserved.
And cpuid 0x80000006 for L2 details.

Intel also encode cache details in cpuid 4.
AMD have mostly the same encoding with cpuid 0x8000001d
0x80000005/0x80000006 is used as a fallback.

Prompted by Intel Tiger Lake and Alder Lake machines
returning an associativity value of 7 from cpuid 0x80000006.
The previous code would print "disabled L2 cache", 7 is
documented by Intel as "See CPUID leaf 04H, sub-leaf 2".

tested by Hrvoje Popovski on EPYC 7413, and myself on various machines
ok mlarkin@
sys/arch/amd64/amd64/cacheinfo.c
sys/arch/amd64/include/cacheinfo.h [deleted file]
sys/arch/amd64/include/cpu.h