Messages in this thread | | | From | Andy Lutomirski <> | Date | Wed, 21 May 2014 14:35:59 -0700 | Subject | Re: [RFC] x86_64: A real proposal for iret-less return to kernel |
| |
On Wed, May 21, 2014 at 2:25 PM, Jiri Kosina <jkosina@suse.cz> wrote: > On Wed, 21 May 2014, Borislav Petkov wrote: > >> > ISTM the do_machine_check code ought to consider any kill-worthy MCE >> > from kernel space to be non-recoverable, but I want to keep the scope >> > of these patches under control. >> >> MCA has a bit called RIPV which, if set, signals that RIP is valid and >> it is safe to return provided we've taken proper care of handling even >> non-correctable errors (memory poisoning, etc). > > Yeah, but it tries to send SIGBUS from MCE context. And if MCE triggered > at the time the CPU was already holding sighand->siglock for that > particular task, it'll deadlock against itself. >
If RIPV is set but we interrupted *kernel* code, SIGBUS doesn't seem like the right solution anyway.
Are there any machine check exceptions for which it makes sense to continue right where we left off without a signal? Is CMIC such a beast? Can CMIC be delivered when interrupts are off?
--Andy
| |