• Peter Zijlstra's avatar
    x86/mm: Optimize RESTORE_CR3 · 21e94459
    Peter Zijlstra authored
    Most NMI/paranoid exceptions will not in fact change pagetables and would
    thus not require TLB flushing, however RESTORE_CR3 uses flushing CR3
    writes.
    
    Restores to kernel PCIDs can be NOFLUSH, because we explicitly flush the
    kernel mappings and now that we track which user PCIDs need flushing we can
    avoid those too when possible.
    
    This does mean RESTORE_CR3 needs an additional scratch_reg, luckily both
    sites have plenty available.
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: David Laight <David.Laight@aculab.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: Eduardo Valentin <eduval@amazon.com>
    Cc: Greg KH <gregkh@linuxfoundation.org>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: aliguori@amazon.com
    Cc: daniel.gruss@iaik.tugraz.at
    Cc: hughd@google.com
    Cc: keescook@google.com
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    21e94459
entry_64.S 48.7 KB