2005-12-01 03:58:00

by Zwane Mwaikambo

[permalink] [raw]
Subject: x86_64/HOTPLUG_CPU: NULL dereference doesn't #PF with init_level4_pgt

NULL dereferences don't cause a page fault if the 4th level pagetable
being used is init_level4_pgt because we never zap_low_mappings. Since
the idle thread uses init_level4_pgt any bad dereferences happening there
(e.g. from interrupts) won't cause a fault. Andi would you be fine with
switching the idle threads to a different level4?

Thanks,
Zwane


2005-12-01 13:19:04

by Andi Kleen

[permalink] [raw]
Subject: Re: x86_64/HOTPLUG_CPU: NULL dereference doesn't #PF with init_level4_pgt

On Wed, Nov 30, 2005 at 08:03:33PM -0800, Zwane Mwaikambo wrote:
> NULL dereferences don't cause a page fault if the 4th level pagetable
> being used is init_level4_pgt because we never zap_low_mappings. Since
> the idle thread uses init_level4_pgt any bad dereferences happening there
> (e.g. from interrupts) won't cause a fault. Andi would you be fine with
> switching the idle threads to a different level4?

That recently changed. Are you sure it's still the case?

idle threads should always run with lazy TLB, no different mms.
That's important for performance.

If a NULL reference causes a oops or not depends on if user space
from the last process mapped a page to NULL or not.

-Andi

2005-12-01 19:28:37

by Zwane Mwaikambo

[permalink] [raw]
Subject: Re: x86_64/HOTPLUG_CPU: NULL dereference doesn't #PF with init_level4_pgt

On Thu, 1 Dec 2005, Andi Kleen wrote:

> On Wed, Nov 30, 2005 at 08:03:33PM -0800, Zwane Mwaikambo wrote:
> > NULL dereferences don't cause a page fault if the 4th level pagetable
> > being used is init_level4_pgt because we never zap_low_mappings. Since
> > the idle thread uses init_level4_pgt any bad dereferences happening there
> > (e.g. from interrupts) won't cause a fault. Andi would you be fine with
> > switching the idle threads to a different level4?
>
> That recently changed. Are you sure it's still the case?
>
> idle threads should always run with lazy TLB, no different mms.
> That's important for performance.
>
> If a NULL reference causes a oops or not depends on if user space
> from the last process mapped a page to NULL or not.

Ah thanks Andi, yes NULL reference causes an oops in the current -git
repository, i hadn't seen that change so i had last tested it on 2.6.13.
Sorry for the noise.

Zwane