为GuestOS模拟MSR寄存器的读取。
主要模拟了MSR_EBC_FREQUENCY_ID寄存器。
看了一下Intel的寄存器,这个主要是上报Core Clock Frequency 和 System Bus Frequency ,具体可以参考Intel编程手册。
/*
* MSR_EBC_FREQUENCY_ID
* Conservative value valid for even the basic CPU models.
* Models 0,1: 000 in bits 23:21 indicating a bus speed of
* 100MHz, model 2 000 in bits 18:16 indicating 100MHz,
* and 266MHz for model 3, or 4. Set Core Clock
* Frequency to System Bus Frequency Ratio to 1 (bits
* 31:24) even though these are only valid for CPU
* models > 2, however guests may end up dividing or
* multiplying by zero otherwise.
*/
case MSR_EBC_FREQUENCY_ID:
data = 1 << 24;
break;
这个应该是为linux以外的操作系统做的,没看到linux使用这个寄存器。