Messages in this thread Patch in this message | | | Date | Thu, 2 Nov 2017 13:09:26 +0100 | From | Borislav Petkov <> | Subject | [PATCH] x86/entry/64: Shorten TEST instructions |
| |
On Thu, Nov 02, 2017 at 11:50:18AM +0100, Borislav Petkov wrote: > If these paths are slow and adding a TEST and a Jcc would give us the > additional sanity-checking, then I don't see any downside to it.
Damn, that really shows. Almost 900K iterations less.
./lseek1_processes -s 50
before: average:11994233 after : average:11134599
So we'll have to remember to enable CONFIG_DEBUG_ENTRY from time to time. :-\
Ok, let's then only shorten the TEST insns:
--- From: Borislav Petkov <bp@suse.de> Date: Thu, 2 Nov 2017 13:00:49 +0100 Subject: [PATCH] x86/entry/64: Shorten TEST instructions
Convert TESTL to TESTB and save 3 bytes per callsite.
No functionality change.
Signed-off-by: Borislav Petkov <bp@suse.de> --- arch/x86/entry/entry_64.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index 40e9933a2d33..84263c79a119 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -620,7 +620,7 @@ GLOBAL(retint_user) GLOBAL(swapgs_restore_regs_and_return_to_usermode) #ifdef CONFIG_DEBUG_ENTRY /* Assert that pt_regs indicates user mode. */ - testl $3, CS(%rsp) + testb $3, CS(%rsp) jnz 1f ud2 1: @@ -653,7 +653,7 @@ retint_kernel: GLOBAL(restore_regs_and_return_to_kernel) #ifdef CONFIG_DEBUG_ENTRY /* Assert that pt_regs indicates kernel mode. */ - testl $3, CS(%rsp) + testb $3, CS(%rsp) jz 1f ud2 1: -- 2.13.0 SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) --
| |