• Jeremy Fitzhardinge's avatar
    x86-32: use non-lazy io bitmap context switching · db949bba
    Jeremy Fitzhardinge authored
    Impact: remove 32-bit optimization to prepare unification
    
    x86-32 and -64 differ in the way they context-switch tasks
    with io permission bitmaps.  x86-64 simply copies the next
    tasks io bitmap into place (if any) on context switch.  x86-32
    invalidates the bitmap on context switch, so that the next
    IO instruction will fault; at that point it installs the
    appropriate IO bitmap.
    
    This makes context switching IO-bitmap-using tasks a bit more
    less expensive, at the cost of making the next IO instruction
    slower due to the extra fault.  This tradeoff only makes sense
    if IO-bitmap-using processes are relatively common, but they
    don't actually use IO instructions very often.
    
    However, in a typical desktop system, the only process likely
    to be using IO bitmaps is the X server, and nothing at all on
    a server.  Therefore the lazy context switch doesn't really win
    all that much, and its just a gratuitious difference from
    64-bit code.
    
    This patch removes the lazy context switch, with a view to
    unifying this code in a later change.
    Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    db949bba
traps.c 24.1 KB