Re: [patch 02/10] x86/mce: Disable tracing and kprobes on do_machine_check()

From: Peter Zijlstra
Date: Wed Feb 26 2020 - 08:29:07 EST


On Tue, Feb 25, 2020 at 09:29:00PM -0800, Andy Lutomirski wrote:

> >> +void notrace do_machine_check(struct pt_regs *regs, long error_code)
> >> {
> >> DECLARE_BITMAP(valid_banks, MAX_NR_BANKS);
> >> DECLARE_BITMAP(toclear, MAX_NR_BANKS);
> >> @@ -1360,6 +1366,7 @@ void do_machine_check(struct pt_regs *re
> >> ist_exit(regs);
> >> }
> >> EXPORT_SYMBOL_GPL(do_machine_check);
> >> +NOKPROBE_SYMBOL(do_machine_check);
> >
> > That won't protect all the function called by do_machine_check(), right?
> > There are lots of them.
> >
>
> It at least means we can survive to run actual C code in
> do_machine_check(), which lets us try to mitigate this issue further.
> PeterZ has patches for that, and maybe this series fixes it later on.
> (I'm reading in order!)

Yeah, I don't cover that either. Making the kernel completely kprobe
safe is _lots_ more work I think.

We really need some form of automation for this :/ The current situation
is completely nonsatisfactory.