• Borislav Petkov's avatar
    x86/dumpstack: Improve opcodes dumping in the code section · 9e4a90fd
    Borislav Petkov authored
    The code used to iterate byte-by-byte over the bytes around RIP and that
    is expensive: disabling pagefaults around it, copy_from_user, etc...
    
    Make it read the whole buffer of OPCODE_BUFSIZE size in one go. Use a
    statically allocated 64 bytes buffer so that concurrent show_opcodes()
    do not interleave in the output even though in the majority of the cases
    it's serialized via die_lock. Except the #PF path which doesn't...
    
    Also, do the PAGE_OFFSET check outside of the function because latter
    will be reused in other context.
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Link: https://lkml.kernel.org/r/20180417161124.5294-5-bp@alien8.de
    9e4a90fd
dumpstack.c 10.3 KB