i386/cpu: Refine comment of CPUID2CacheDescriptorInfo
Refer to SDM vol.3 table 1-21, add the notes about the missing descriptor, and fix the typo and comment format. Reviewed-by: Dapeng Mi <dapeng1.mi@linux.intel.com> Tested-by: Yi Lai <yi1.lai@intel.com> Signed-off-by: Zhao Liu <zhao1.liu@intel.com> Link: https://lore.kernel.org/r/20250711102143.1622339-2-zhao1.liu@intel.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
7ff24fb657
commit
1034b94fe9
1 changed files with 22 additions and 9 deletions
|
|
@ -68,6 +68,7 @@ struct CPUID2CacheDescriptorInfo {
|
|||
|
||||
/*
|
||||
* Known CPUID 2 cache descriptors.
|
||||
* TLB, prefetch and sectored cache related descriptors are not included.
|
||||
* From Intel SDM Volume 2A, CPUID instruction
|
||||
*/
|
||||
struct CPUID2CacheDescriptorInfo cpuid2_cache_descriptors[] = {
|
||||
|
|
@ -89,18 +90,29 @@ struct CPUID2CacheDescriptorInfo cpuid2_cache_descriptors[] = {
|
|||
.associativity = 2, .line_size = 64, },
|
||||
[0x21] = { .level = 2, .type = UNIFIED_CACHE, .size = 256 * KiB,
|
||||
.associativity = 8, .line_size = 64, },
|
||||
/* lines per sector is not supported cpuid2_cache_descriptor(),
|
||||
* so descriptors 0x22, 0x23 are not included
|
||||
*/
|
||||
/*
|
||||
* lines per sector is not supported cpuid2_cache_descriptor(),
|
||||
* so descriptors 0x22, 0x23 are not included
|
||||
*/
|
||||
[0x24] = { .level = 2, .type = UNIFIED_CACHE, .size = 1 * MiB,
|
||||
.associativity = 16, .line_size = 64, },
|
||||
/* lines per sector is not supported cpuid2_cache_descriptor(),
|
||||
* so descriptors 0x25, 0x20 are not included
|
||||
*/
|
||||
/*
|
||||
* lines per sector is not supported cpuid2_cache_descriptor(),
|
||||
* so descriptors 0x25, 0x29 are not included
|
||||
*/
|
||||
[0x2C] = { .level = 1, .type = DATA_CACHE, .size = 32 * KiB,
|
||||
.associativity = 8, .line_size = 64, },
|
||||
[0x30] = { .level = 1, .type = INSTRUCTION_CACHE, .size = 32 * KiB,
|
||||
.associativity = 8, .line_size = 64, },
|
||||
/*
|
||||
* Newer Intel CPUs (having the cores without L3, e.g., Intel MTL, ARL)
|
||||
* use CPUID 0x4 leaf to describe cache topology, by encoding CPUID 0x2
|
||||
* leaf with 0xFF. For older CPUs (without 0x4 leaf), it's also valid
|
||||
* to just ignore L3's code if there's no L3.
|
||||
*
|
||||
* This already covers all the cases in QEMU, so code 0x40 is not
|
||||
* included.
|
||||
*/
|
||||
[0x41] = { .level = 2, .type = UNIFIED_CACHE, .size = 128 * KiB,
|
||||
.associativity = 4, .line_size = 32, },
|
||||
[0x42] = { .level = 2, .type = UNIFIED_CACHE, .size = 256 * KiB,
|
||||
|
|
@ -138,9 +150,10 @@ struct CPUID2CacheDescriptorInfo cpuid2_cache_descriptors[] = {
|
|||
.associativity = 4, .line_size = 64, },
|
||||
[0x78] = { .level = 2, .type = UNIFIED_CACHE, .size = 1 * MiB,
|
||||
.associativity = 4, .line_size = 64, },
|
||||
/* lines per sector is not supported cpuid2_cache_descriptor(),
|
||||
* so descriptors 0x79, 0x7A, 0x7B, 0x7C are not included.
|
||||
*/
|
||||
/*
|
||||
* lines per sector is not supported cpuid2_cache_descriptor(),
|
||||
* so descriptors 0x79, 0x7A, 0x7B, 0x7C are not included.
|
||||
*/
|
||||
[0x7D] = { .level = 2, .type = UNIFIED_CACHE, .size = 2 * MiB,
|
||||
.associativity = 8, .line_size = 64, },
|
||||
[0x7F] = { .level = 2, .type = UNIFIED_CACHE, .size = 512 * KiB,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue