Messages in this thread | | | From | Thomas Gleixner <> | Subject | Re: [patch V4 part 1 29/36] x86/mce: Send #MC singal from task work | Date | Thu, 14 May 2020 19:38:37 +0200 |
| |
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.
Thanks,
tglx
| |