Messages in this thread | | | Date | Thu, 10 Jul 2003 12:59:24 +0200 (CEST) | From | Ingo Molnar <> | Subject | Re: [announce, patch] 4G/4G split on x86, 64 GB RAM (and more) support |
| |
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/
| |