• Jeremy Fitzhardinge's avatar
    xen: hack to prevent bad segment register reload · 8b84ad94
    Jeremy Fitzhardinge authored
    The hypervisor saves and restores the segment registers as part of the
    state is saves while context switching.  If, during a context switch,
    the next process doesn't use the TLS segments, it invalidates the GDT
    entry, causing the segment register reload to fault.  This fault
    effectively doubles the cost of a context switch.
    
    This patch is a band-aid workaround which clears the usermode %gs
    after it has been saved for the previous process, but before it gets
    reloaded for the next, and it avoids having the hypervisor attempt to
    erroneously reload it.
    Signed-off-by: default avatarJeremy Fitzhardinge <jeremy@xensource.com>
    Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
    8b84ad94
enlighten.c 22.7 KB