Re: [PATCH][RT] x86: Fix an RT MCE crash
From: Corey Minyard <hidden>
Date: 2016-07-06 01:00:03
On 07/01/2016 02:20 AM, Borislav Petkov wrote:
quoted
That sounds like a bit much.Actually, you probably would need only a couple: 1. 648ed94038c0 ("x86/mce: Provide a lockless memory pool to save error records") 2. 061120aed708 ("x86/mce: Don't use percpu workqueues") - that one is unrelated but should be nice for RT as it gets rid of percpu workqueues and I know RT hates them :) 3. fd4cf79fcc4b ("x86/mce: Remove the MCE ring for Action Optional errors") - this one connects the genpool to MCE 4. f29a7aff4bd6 ("x86/mce: Avoid potential deadlock due to printk() in MCE context") - and this is the last one which I meant earlier. So that's 4 patches, more or less. Now, you're in the perfect position to test those because you *actually* have a real-life system which generates those errors so it is the perfect candidate for testing the backports. And you should test them with the failing DIMM still in place, of course.
I'm having our hardware people keep the system as-is until we can track this down. A applied the above four patches and a few more support patches got that were needed, but no love. Exact same issue. Well, almost the same, here's the traceback: [ 0.455575] [<ffffffff810733c4>] try_to_wake_up+0x34/0x300 [ 0.455590] [<ffffffff81067d76>] ? __hrtimer_start_range_ns+0x226/0x3a0 [ 0.455593] [<ffffffff810736e0>] wake_up_process+0x10/0x20 [ 0.455615] [<ffffffff8101c7a8>] mce_notify_irq+0x28/0x30 [ 0.455621] [<ffffffff8101cbd9>] mce_irq_work_cb+0x9/0x10 [ 0.455646] [<ffffffff810cbb0c>] irq_work_run_list+0x3c/0x60 [ 0.455649] [<ffffffff810cbe97>] irq_work_tick_soft+0x27/0x30 [ 0.455673] [<ffffffff8104dbe4>] run_timer_softirq+0x24/0x250 [ 0.455681] [<ffffffff81045bce>] do_current_softirqs+0x1ae/0x250 [ 0.455684] [<ffffffff81045c9e>] run_ksoftirqd+0x2e/0x50 [ 0.455697] [<ffffffff8106c7f6>] smpboot_thread_fn+0x206/0x320 [ 0.455700] [<ffffffff8106c5f0>] ? lg_global_unlock+0x60/0x60 [ 0.455720] [<ffffffff81063cad>] kthread+0xad/0xc0 [ 0.455740] [<ffffffff81730303>] ? _dbgp_external_startup+0x236/0x392 [ 0.455744] [<ffffffff81063c00>] ? kthread_create_on_node+0x130/0x130 [ 0.455752] [<ffffffff8173a4be>] ret_from_fork+0x4e/0x80 [ 0.455756] [<ffffffff81063c00>] ? kthread_create_on_node+0x130/0x130 So it crashed in the kthread instead of the irq, but exactly the same issue, that particular field is not initialized. Not that these aren't patches that look like good ideas. -corey