Messages in this thread | | | Date | Mon, 17 Aug 2009 13:24:10 +0200 | From | Ingo Molnar <> | Subject | Re: [boot crash] Re: [tip:x86/mce3] x86, mce: use 64bit machine check code on 32bit |
| |
* Andi Kleen <ak@linux.intel.com> wrote:
> Ingo Molnar wrote: >> * Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> wrote: >> >>> One possibility is: if the BIOS doesn't clear status in banks, new >>> mce codes will try to log such junks. If the junk is totally junk >>> but can be decoded as a valid log with MISCV or ADDRV bit, and if >>> the cpu try to access register which is not implemented (e.g. >>> IA32_MCi_MISC/ADDR), then such access might cause a general >>> protection exception. (ref. ASDM 3A 15.3.2.3) >> >> btw., that reminds me: mce_rdmsrl() needs to be fixed to use >> rdmsrl_safe() and it should emit a WARN_ONCE() if it ever hits an >> error while trying to access registers. > > In general systems (like VMs) who don't have MCA MSRs don't > declare the capability bits (there are own capability bits for all > of this) and then the MSRs are never touched. So far I've not had > a single report of this going wrong. > > I suspect the problem on your system is something else too we just > need to debug properly.
That sidenote was unrelated to this bug.
We obviously dont #GP fault in the MSR access, i'd see that in the crash.
We want to use rdmsr_safe()/wrmsr_safe() in general as a defensive measure, for all code that does not actually add functionality but is diagnostic (like MCE).
Ingo
| |