Three patches to clean up GDT access in Linux to make it friendly to virtualization environments. The basic problem is that the GDT must be write protected, which causes spurious overhead when the GDT lies on the same page as other data. This problem exists both for VMware and Xen; Xen actually requires page isolation, so we have implemented the most general and compatible solution. Patch 1 deprecates a broken GDT reference; Patch 2 adds a per-cpu GDT accessor; Patch 3 moves the GDT out of the per-cpu area and makes it page padded and page aligned. The GDTs for secondary processors are allocated dynamically to avoid bloating kernel static data with GDTs for not-present processors. This could be adapted to drop and reallocate GDTs for CPU hotplug if desired, although the space savings (1 page) are dubious, so I have not implemented that at this time. Testing: 4 way SMP boot-halts, kernel compiles, stress. Zachary Amsden <zach@xxxxxxxxxx>