Re: [PATCHv1] x86: don't schedule when handling #NM exception

From: H. Peter Anvin
Date: Mon Mar 10 2014 - 12:47:30 EST


On 03/10/2014 09:17 AM, David Vrabel wrote:
> diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
> index 57409f6..c8078d2 100644
> --- a/arch/x86/kernel/traps.c
> +++ b/arch/x86/kernel/traps.c
> @@ -624,18 +624,13 @@ void math_state_restore(void)
> struct task_struct *tsk = current;
>
> if (!tsk_used_math(tsk)) {
> - local_irq_enable();
> - /*
> - * does a slab alloc which can sleep
> - */
> - if (init_fpu(tsk)) {
> + if (init_fpu(tsk, GFP_ATOMIC)) {
> /*
> * ran out of memory!
> */
> - do_group_exit(SIGKILL);
> + force_sig(SIGKILL, tsk);
> return;
> }
> - local_irq_disable();
> }
>

OK, answering my own question... you're randomly SIGKILLing processes
because the kernel doesn't have enough memory on hand.

In other words, because Xen is broken you want to break the rest of the
universe.

This is NAKed so hard it isn't even funny.

-hpa


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/