On 02/22/2018 11:27 AM, Andy Lutomirski wrote: > On Thu, Feb 22, 2018 at 7:19 PM, Dave Hansen <dave.han...@intel.com> wrote: >> On 02/22/2018 11:01 AM, Andy Lutomirski wrote: >>> On x86, if you shoot down the PTE for the current stack, you're dead. >> >> *If* we were to go do this insanity for vmalloc()'d memory, we could >> probably limit it to kswapd, and also make sure that kernel threads >> don't get vmalloc()'d stacks or that we mark them in a way to say we >> never muck with them. > > How does that help? We need to make sure that the task whose stack > we're migrating is (a) not running and (b) is not being switched in or > out. And we have to make sure that there isn't some *other* mm that > has the task's stack in ASID's TLB space. > > Maybe we take some lock so the task can't run, then flush the world, > then release the lock.
Oh, I was thinking only of the case where you try to muck with your *own* stack. But, I see what you are saying about doing it to another task on another CPU that is actively using the stack. I think what you're saying is that we do not want to handle faults that are caused by %esp being unusable. Whatever we do, we've got to make sure that no CPU has a stack in %esp that we are messing with.