lkml.org 
[lkml]   [2010]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: -tip tree resume fail, bisect to 5bd5a45(x86: Add NX protection for kernel data)
Hi Andi,

Quoting Andi Kleen <andi@firstfloor.org>:

> On Mon, Nov 22, 2010 at 09:07:10AM +0100, Ingo Molnar wrote:
> > > ---[ High Kernel Mapping ]---
> > > ....
> > > 0xffffffff81a00000-0xffffffff81c00000 2M ro PSE GLB
> NX pmd
> > > 0xffffffff81c00000-0xffffffff81d91000 1604K ro GLB
> NX pte
> > > 0xffffffff81d91000-0xffffffff81e00000 444K ro GLB
> NX pte
> > > 0xffffffff81e00000-0xffffffff82000000 2M RW PSE GLB
> NX pmd
> > > 0xffffffff82000000-0xffffffff8200c000 48K RW GLB
> NX pte
> > > 0xffffffff8200c000-0xffffffff82100000 976K RW GLB
> NX pte
> > > 0xffffffff82100000-0xffffffff82200000 1M RW GLB
> NX pte
> > > .....
> > >
> > > The only difference is 0xffffffff81e00000(end) to
> 0xffffffff82200000(kernel_end) is set to NX.
> > >
> > > I guess this range code is used by resume wakeup code. So setting it to
> NX causes problem.
> > >
> > > Any idea?
> >
> > Yeah, the resume area is a trampoline, it needs to be executable.
>
> Also it looks like most of the kernel linker supplied data is now not
> 2MB mapped anymore? That will surely cost TLB entries.
>
Any idea where it comes from ?

The mapping is still not 2MB mapped without the commit.

The patch only add

+#if defined(CONFIG_DEBUG_RODATA)
+ /* .text should occupy whole number of pages */
+ . = ALIGN(PAGE_SIZE);
+#endif
X64_ALIGN_DEBUG_RODATA_BEGIN
RO_DATA(PAGE_SIZE)
X64_ALIGN_DEBUG_RODATA_END

But X64_ALIGN_DEBUG_RODATA_BEGIN is aligned on 2M, so it shouldn't change
nothing on x64 ?

Matthieu


\
 
 \ /
  Last update: 2010-11-22 11:31    [W:0.071 / U:0.176 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site