2016-03-10 06:46:02

by Andy Lutomirski

[permalink] [raw]
Subject: Re: [PATCH 03/11] x86/mm/hotplug: Don't remove PGD entries in remove_pagetable()

On Fri, Feb 12, 2016 at 11:04 AM, Andy Lutomirski <[email protected]> wrote:
> On Mon, Sep 21, 2015 at 11:23 PM, Ingo Molnar <[email protected]> wrote:
>> So when memory hotplug removes a piece of physical memory from pagetable
>> mappings, it also frees the underlying PGD entry.
>>
>> This complicates PGD management, so don't do this. We can keep the
>> PGD mapped and the PUD table all clear - it's only a single 4K page
>> per 512 GB of memory hotplugged.
>
> Ressurecting an ancient thread: I want this particular change to make
> it (much) easier to make vmapped stacks work correctly. Could it be
> applied by itself?
>

It's incomplete. pageattr.c has another instance of the same thing.
I'll see if I can make it work, but I may end up doing something a
little different.

--Andy

--
Andy Lutomirski
AMA Capital Management, LLC


2016-03-10 09:56:17

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH 03/11] x86/mm/hotplug: Don't remove PGD entries in remove_pagetable()


* Andy Lutomirski <[email protected]> wrote:

> On Fri, Feb 12, 2016 at 11:04 AM, Andy Lutomirski <[email protected]> wrote:
> > On Mon, Sep 21, 2015 at 11:23 PM, Ingo Molnar <[email protected]> wrote:
> >> So when memory hotplug removes a piece of physical memory from pagetable
> >> mappings, it also frees the underlying PGD entry.
> >>
> >> This complicates PGD management, so don't do this. We can keep the
> >> PGD mapped and the PUD table all clear - it's only a single 4K page
> >> per 512 GB of memory hotplugged.
> >
> > Ressurecting an ancient thread: I want this particular change to make
> > it (much) easier to make vmapped stacks work correctly. Could it be
> > applied by itself?
> >
>
> It's incomplete. pageattr.c has another instance of the same thing.
> I'll see if I can make it work, but I may end up doing something a
> little different.

If so then mind picking up (and fixing ;-) tip:WIP.x86/mm in its entirety? It's
well tested so shouldn't have too many easy to hit bugs. Feel free to rebase and
restructure it, it's a WIP tree.

I keep getting distracted with other things but I'd hate if this got dropped on
the floor.

Thanks,

Ingo

2016-03-11 01:52:29

by Andy Lutomirski

[permalink] [raw]
Subject: Re: [PATCH 03/11] x86/mm/hotplug: Don't remove PGD entries in remove_pagetable()

On Thu, Mar 10, 2016 at 1:56 AM, Ingo Molnar <[email protected]> wrote:
>
> * Andy Lutomirski <[email protected]> wrote:
>
>> On Fri, Feb 12, 2016 at 11:04 AM, Andy Lutomirski <[email protected]> wrote:
>> > On Mon, Sep 21, 2015 at 11:23 PM, Ingo Molnar <[email protected]> wrote:
>> >> So when memory hotplug removes a piece of physical memory from pagetable
>> >> mappings, it also frees the underlying PGD entry.
>> >>
>> >> This complicates PGD management, so don't do this. We can keep the
>> >> PGD mapped and the PUD table all clear - it's only a single 4K page
>> >> per 512 GB of memory hotplugged.
>> >
>> > Ressurecting an ancient thread: I want this particular change to make
>> > it (much) easier to make vmapped stacks work correctly. Could it be
>> > applied by itself?
>> >
>>
>> It's incomplete. pageattr.c has another instance of the same thing.
>> I'll see if I can make it work, but I may end up doing something a
>> little different.
>
> If so then mind picking up (and fixing ;-) tip:WIP.x86/mm in its entirety? It's
> well tested so shouldn't have too many easy to hit bugs. Feel free to rebase and
> restructure it, it's a WIP tree.

I'll chew on this one patch a bit and see where the whole things go.
If I can rebase the rest on top, I'll use them.

BTW, how are current kernels possibly correct when this code runs? We
zap a pgd from the init pgd. I can't find any code that would try to
propagate that zapped pgd to other pgds. Then, if we hotplug in some
more memory or claim the slot for vmap, we'll install a new pgd entry,
and we might access *that* through a different pgd. There vmalloc
fault fixup won't help because the MMU will chase a stale pointer in
the old pgd.

So we might actually need this patch sooner rather than later.

>
> I keep getting distracted with other things but I'd hate if this got dropped on
> the floor.
>
> Thanks,
>
> Ingo



--
Andy Lutomirski
AMA Capital Management, LLC