• Rusty Russell's avatar
    [PATCH] paravirt: Patch inline replacements for paravirt intercepts · 139ec7c4
    Rusty Russell authored
    It turns out that the most called ops, by several orders of magnitude,
    are the interrupt manipulation ops.  These are obvious candidates for
    patching, so mark them up and create infrastructure for it.
    
    The method used is that the ops structure has a patch function, which
    is called for each place which needs to be patched: this returns a
    number of instructions (the rest are NOP-padded).
    
    Usually we can spare a register (%eax) for the binary patched code to
    use, but in a couple of critical places in entry.S we can't: we make
    the clobbers explicit at the call site, and manually clobber the
    allowed registers in debug mode as an extra check.
    
    And:
    
    Don't abuse CONFIG_DEBUG_KERNEL, add CONFIG_DEBUG_PARAVIRT.
    
    And:
    
    AK:  Fix warnings in x86-64 alternative.c build
    
    And:
    
    AK: Fix compilation with defconfig
    
    And:
    
    ^From: Andrew Morton <akpm@osdl.org>
    
    Some binutlises still like to emit references to __stop_parainstructions and
    __start_parainstructions.
    
    And:
    
    AK: Fix warnings about unused variables when PARAVIRT is disabled.
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: default avatarJeremy Fitzhardinge <jeremy@xensource.com>
    Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
    Signed-off-by: default avatarZachary Amsden <zach@vmware.com>
    Signed-off-by: default avatarAndi Kleen <ak@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    139ec7c4
processor.h 19.8 KB