Re: [x86/asm/entry] BUG: unable to handle kernel paging request

From: Ingo Molnar
Date: Mon Mar 09 2015 - 07:46:28 EST



* Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:

> >> */
> >> unsigned long stack[64];
> >>
> >> Last I checked, 0x100 != 64. Also, wow, this is kind of disgusting. :)
> >
> >
> > Seems to be unused: I commented it out on "defconfig" build
> > and got no build errors.
>
> It's used. On 32-bit, NMIs don't use task gates (I don't know why),

So task gates were a sexy hardware acceleration feature, eons ago, and
we used to rely on them a lot, but why should we use task gates for
NMIs on modern CPUs?

NMIs are performance critical for profiling, and task gates are more
expensive than interrupt gates. Task gates are also an x86 anachronism
whose performance might change negatively in the future. We don't use
32-bit segmentation tricks for similar reasons.

The only place where we use task gates is the double fault handler,
and we only do it because we must: if pagetables are screwed up then
we really have to create a new context from scratch to be able to
print debug info.

Thanks,

Ingo
--
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/