Skip to content

Commit 5ca4858

Browse files
committed
refactor(x86_64): use generated MSR values instead of hand coded ones
Replace hand coded MTRR MSRs with auto generated ones. Signed-off-by: Egor Lazarchuk <[email protected]>
1 parent e45c805 commit 5ca4858

File tree

1 file changed

+21
-20
lines changed

1 file changed

+21
-20
lines changed

src/vmm/src/cpu_config/x86_64/cpuid/common.rs

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
// SPDX-License-Identifier: Apache-2.0
33
#![allow(clippy::restriction)]
44

5+
use crate::arch::x86_64::generated::msr_index::{
6+
MSR_IA32_BNDCFGS, MSR_IA32_CR_PAT, MSR_MTRRdefType, MSR_MTRRfix4K_C0000, MSR_MTRRfix4K_C8000,
7+
MSR_MTRRfix4K_D0000, MSR_MTRRfix4K_D8000, MSR_MTRRfix4K_E0000, MSR_MTRRfix4K_E8000,
8+
MSR_MTRRfix4K_F0000, MSR_MTRRfix4K_F8000, MSR_MTRRfix16K_80000, MSR_MTRRfix16K_A0000,
9+
MSR_MTRRfix64K_00000,
10+
};
11+
512
/// Error type for [`get_cpuid`].
613
#[derive(Debug, thiserror::Error, displaydoc::Display, PartialEq, Eq)]
714
pub enum GetCpuidError {
@@ -93,13 +100,7 @@ pub(crate) fn msrs_to_save_by_cpuid(cpuid: &kvm_bindings::CpuId) -> Vec<u32> {
93100
}
94101

95102
// TODO: Add more dependencies.
96-
cpuid_msr_dep!(
97-
0x7,
98-
0,
99-
ebx,
100-
MPX_BITINDEX,
101-
[crate::arch::x86_64::generated::msr_index::MSR_IA32_BNDCFGS]
102-
);
103+
cpuid_msr_dep!(0x7, 0, ebx, MPX_BITINDEX, [MSR_IA32_BNDCFGS]);
103104

104105
// IA32_MTRR_PHYSBASEn, IA32_MTRR_PHYSMASKn
105106
cpuid_msr_dep!(0x1, 0, edx, MTRR_BITINDEX, 0x200..0x210);
@@ -111,19 +112,19 @@ pub(crate) fn msrs_to_save_by_cpuid(cpuid: &kvm_bindings::CpuId) -> Vec<u32> {
111112
edx,
112113
MTRR_BITINDEX,
113114
[
114-
0x250, // IA32_MTRR_FIX64K_00000
115-
0x258, // IA32_MTRR_FIX16K_80000
116-
0x259, // IA32_MTRR_FIX16K_A0000
117-
0x268, // IA32_MTRR_FIX4K_C0000
118-
0x269, // IA32_MTRR_FIX4K_C8000
119-
0x26a, // IA32_MTRR_FIX4K_D0000
120-
0x26b, // IA32_MTRR_FIX4K_D8000
121-
0x26c, // IA32_MTRR_FIX4K_E0000
122-
0x26d, // IA32_MTRR_FIX4K_E8000
123-
0x26e, // IA32_MTRR_FIX4K_F0000
124-
0x26f, // IA32_MTRR_FIX4K_F8000
125-
0x277, // IA32_PAT
126-
0x2ff // IA32_MTRR_DEF_TYPE
115+
MSR_MTRRfix64K_00000,
116+
MSR_MTRRfix16K_80000,
117+
MSR_MTRRfix16K_A0000,
118+
MSR_MTRRfix4K_C0000,
119+
MSR_MTRRfix4K_C8000,
120+
MSR_MTRRfix4K_D0000,
121+
MSR_MTRRfix4K_D8000,
122+
MSR_MTRRfix4K_E0000,
123+
MSR_MTRRfix4K_E8000,
124+
MSR_MTRRfix4K_F0000,
125+
MSR_MTRRfix4K_F8000,
126+
MSR_IA32_CR_PAT,
127+
MSR_MTRRdefType,
127128
]
128129
);
129130

0 commit comments

Comments
 (0)