[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALCETrUcSB8ix0HSPyTwXT46gMAE2iGVZ8V1kEbkQVxVqrQFiQ@mail.gmail.com>
Date: Sun, 27 Dec 2015 04:19:54 -0800
From: Andy Lutomirski <luto@...capital.net>
To: Borislav Petkov <bp@...en8.de>
Cc: Tony Luck <tony.luck@...il.com>,
linux-nvdimm <linux-nvdimm@...1.01.org>, X86 ML <x86@...nel.org>,
"elliott@....com" <elliott@....com>,
"linux-mm@...ck.org" <linux-mm@...ck.org>,
Andrew Morton <akpm@...ux-foundation.org>,
"Williams, Dan J" <dan.j.williams@...el.com>,
Ingo Molnar <mingo@...nel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCHV5 3/3] x86, ras: Add __mcsafe_copy() function to recover
from machine checks
On Sun, Dec 27, 2015 at 2:09 AM, Borislav Petkov <bp@...en8.de> wrote:
> On Sat, Dec 26, 2015 at 10:57:26PM -0800, Tony Luck wrote:
>> ... will get the right value. Maybe this would still work out
>> if the fixup is a 31-bit value plus a flag, but the external
>> tool thinks it is a 32-bit value? I'd have to ponder that.
>
> I still fail to see why do we need to make it so complicated and can't
> do something like:
>
>
> fixup_exception:
> ...
>
> #ifdef CONFIG_MCE_KERNEL_RECOVERY
> if (regs->ip >= (unsigned long)__mcsafe_copy &&
> regs->ip <= (unsigned long)__mcsafe_copy_end)
> run_special_handler();
> #endif
>
> and that special handler does all the stuff we want. And we pass
> X86_TRAP* etc through fixup_exception along with whatever else we
> need from the trap handler...
>
> Hmmm?
You certainly can, but it doesn't scale well to multiple users of
similar mechanisms. It also prevents you from using the same
mechanism in anything that could be inlined, which is IMO kind of
unfortunate.
--Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists