[lkml]   [2011]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRE: [RFC 0/9] mce recovery for Sandy Bridge server
Other points noted - I'll go look at the previous discussion threads
you gave me links to.

I do want to comment on this point:
> Creating a callback there would be a good place to do the TIF_MCE work and also
> to extract any events that got queued by other NMIs. Note that more events
> might be queued by further NMIs while we are processing the MCE path - while
> with the task->mce_error_pfn hack we are limited to a single pending event only
> and subsequent NMIs will overwrite this value!

I wasn't very happy with task->mce_error_pfn either - but being overwritten
is not one of its flaws. The task that stumbled on the error must not be
run until the error is dealt with - any other NMIs for other errors must
be happening to other tasks (who have their own task->mce_error_pfn).

> A happy side effect is that the TIF_MCE_NOTIFY hack could go away as well.

We need some way to stop the task that found the error dead in its
tracks - if it tripped over a data error, then running it will just trip
over the same error again. If it had a memory error during an instruction
fetch we have no place to return to.

So can we talk about this part for a while before returning to the
"how to report this" discussion?

So here's the situation - we are in the NMI handler when we find from
looking at the machine check bank registers that we have a recoverable
error. We know the physical address, and we know the task (which might
have been in user or kernel context). I can package that information
into a perf/event ... but then how can I mark the current task as


 \ /
  Last update: 2011-05-24 19:01    [W:0.105 / U:4.640 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site