Re: [PATCH]: Fake MSR_K7 performance counters

Avi Kivity
2008-05-02T10:00:10Z

> Chris Lalancette wrote:
>
>> Attached is a patch that fixes a guest crash when booting older Linux kernels.
>> The problem stems from the fact that we are currently emulating
>> MSR_K7_EVNTSEL[0-3], but not emulating MSR_K7_PERFCTR[0-3]. Because of this,
>> setup_k7_watchdog() in the Linux kernel receives a GPF when it attempts to write
>> into MSR_K7_PERFCTR, which causes an OOPs.
>>
>> The patch fixes it by just "fake" emulating the appropriate MSRs, throwing away
>> the data in the process. This causes the NMI watchdog to not actually work, but
>> it's not such a big deal in a virtualized environment.
>>
>> Tested by myself on a RHEL-4 guest, and Joerg Roedel on a Windows XP 64-bit guest.
>>
>
> Avi,
> Do you mind applying this patch for me (unless you see something wrong with
> it, of course)?
>
>

Sorry, was behind on my email. Please add a ratelimited printk() if
nonzero data is written, so that we know that the guest is using
partially virtualized features.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.