Skip to content

Use 64bit x86 machine check code for 32bit too

Andi Kleen lkml 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest9 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9MCE: Make 64bit mce code 32bit cleanarch/x86/kernel/cpu/mcheck/mce_64.c include/asm-x86/mce.h+18 -180 replies
2/9MCE: Implement the PPro bank 0 quirk in the 64bit machine check codearch/x86/kernel/cpu/mcheck/mce_64.c+15 -10 replies
3/9MCE: Port K7 bank 0 quirk to 64bit mce codearch/x86/kernel/cpu/mcheck/mce_64.c+6 -00 replies
4/9MCE: Call 64bit machine check through a call vectorarch/x86/kernel/cpu/mcheck/mce_64.c arch/x86/kernel/entry_64.S include/asm-x86/mce.h+12 -10 replies
5/9MCE: Rename mce_dont_init on 64bit to mce_disabledarch/x86/kernel/cpu/mcheck/mce_64.c include/asm-x86/mce.h+4 -60 replies
6/9MCE: Provide exit_idle dummy functions for 32bit.include/asm-x86/idle.h+5 -00 replies
7/9MCE: Remove machine check handler idle notify on 64bitarch/x86/kernel/cpu/mcheck/mce_64.c arch/x86/kernel/signal_64.c include/asm-x86/thread_info_64.h+3 -310 replies
8/9MCE: Remove oops_begin() use in 64bit machine checkarch/x86/kernel/cpu/mcheck/mce_64.c+2 -10 replies
9/9MCE: Use 64bit machine check code on 32bit v2arch/x86/Kconfig arch/x86/kernel/cpu/mcheck/Makefile arch/x86/kernel/cpu/mcheck/ancient.h +4 more+64 -160 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH] [0/9] Use 64bit x86 machine check code for 32bit too

This patchkit uses the 64bit machine check code which is better in many ways on 32bit x86 too. This is also the basis for some future machine check work.

The 64bit machine check code is in many ways much better than the 32bit machine check code: it is more specification compliant, is cleaner, only has a single code base versus one per CPU, has better infrastructure for recovery, has a cleaner way to communicate with user space etc. etc.

It requires testing especially on older systems (on newer ones it should be already tested well in 64bit systems).

The patchkit contains several parts:
- It ports over a few needed quirks (for older Intel and older
AMD CPUs) to the 64bit kernel.
- It changes the 64bit code to be 32bit clean in its data structures (mostly just unsigned long -> u64 where needed)
- It drops some unused functionality that cannot be easily implemented on 32bit and didn't seem worth ifdefing

Tested by doing some software level error injection on a few different machines

I request this code is merged into the appropiate tree for linux-next for wider testing. It's not .27 ready, but hopefully .28, but it requires wider exposure now.

Patches are also available for pulling from

git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6.git mce

-Andi