On Thu, 10 Jul 2003, Kirill Korotaev wrote:
> > yes, it is also visible to user-space, otherwise user-space LDT
> > descriptors would not work. The top 16 MB of virtual memory also hosts the
> > 'virtual LDT'.
> > the top 16 MB is split up into per-CPU areas, each CPU has its own. Check
> > out atomic_kmap.h for details.
> But you need to remap it every time a switch occurs. [...]
only if the task uses an LDT - which with NPTL is very rare these days.
But _if_ something relies on LDTs heavily then it can be done limit-less.
(we used to have nasty LDT limits due to vmalloc() limitations).
> 8. NMI is special. The only difference is that unlike usual interrupts
> NMI can interrupt returning to user-space either. This is solved easily
> by saving current cr3/esp on enter and restoring them if required on
> leave ("required" == esp >= 0xffxxxxxx).
ok, "esp >= 0xff000000" is a good check, and it's a constant check so it
can be done very early in the entry code. The double-cr3-load is not an
issue, this is a rare race situation. I'll rework this area to be faster,
but first i wanted to concentrate on robustness. Thanks for you comments,
they are really useful!
Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Tue Jul 15 2003 - 22:00:34 EST