Messages in this thread | | | Date | Thu, 14 May 2020 13:42:01 -0400 (EDT) | From | Mathieu Desnoyers <> | Subject | Re: [patch V4 part 1 29/36] x86/mce: Send #MC singal from task work |
| |
----- On May 14, 2020, at 1:38 PM, Thomas Gleixner tglx@linutronix.de wrote:
> Mathieu Desnoyers <mathieu.desnoyers@efficios.com> writes: >> ----- On May 5, 2020, at 9:16 AM, Thomas Gleixner tglx@linutronix.de wrote: >> >>> From: Peter Zijlstra <peterz@infradead.org> >>> >> >> Patch title: singal -> signal. >> >>> Convert #MC over to using task_work_add(); it will run the same code >>> slightly later, on the return to user path of the same exception. >> >> So I suspect that switching the order between tracehook_notify_resume() >> (which ends up calling task_work_run()) and do_signal() done by an >> earlier patch in this series intends to ensure the information about the >> instruction pointer causing the #MC is not overwritten by do_signal() >> (but I'm just guessing). > > No, it does not. See the ordering discussion. > > Aside of that signal never transported any address information. It uses > force_sig(SIGBUS). > > Even if a different signal would be sent first then the register frame > of the #MC is still there when the fatal signal is sent later. > > But even w/o changing the ordering the taskwork check in do_signal() > runs the pending work before delivering anything.
Yep, that was the key thing I missed,
Thanks,
Mathieu
-- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com
| |