From: Avi K. <av...@qu...> - 2008-05-06 11:28:29
|
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. > > When we get a write to one of these counters, we printk_ratelimit() a warning. > I decided to print it out for all writes, even if the data is 0; it doesn't seem > to make sense to me to special case when data == 0. > > Tested by myself on a RHEL-4 guest, and Joerg Roedel on a Windows XP 64-bit guest. > Applied, thanks. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. |