Messages in this thread | | | Date | Thu, 15 Jul 2010 16:35:18 +0200 | From | Andi Kleen <> | Subject | Re: [patch 1/2] x86_64 page fault NMI-safe |
| |
> But then how did the previous tasks get this new mapping? You said > we don't walk through every process page tables for vmalloc.
No because those are always shared for the kernel and have been filled in for init_mm.
Also most updates only update the lower tables anyways, top level updates are extremly rare. In fact on PAE36 they should only happen at most once, if at all, and most likely at early boot anyways where you only have a single task.
On x86-64 they will only happen once every 512GB of vmalloc. So for most systems also at most once at early boot. > > I would understand this race if we were to walk on every processes page > tables and add the new mapping on them, but we missed one new task that > forked or so, because we didn't lock (or just rcu).
The new task will always get a copy of the reference init_mm, which was already updated.
-Andi
| |