From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754812AbdKBMJj (ORCPT ); Thu, 2 Nov 2017 08:09:39 -0400 Received: from mx2.suse.de ([195.135.220.15]:44723 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751324AbdKBMJh (ORCPT ); Thu, 2 Nov 2017 08:09:37 -0400 Date: Thu, 2 Nov 2017 13:09:26 +0100 From: Borislav Petkov To: Andy Lutomirski , X86 ML Cc: "linux-kernel@vger.kernel.org" , Brian Gerst , Dave Hansen , Linus Torvalds Subject: [PATCH] x86/entry/64: Shorten TEST instructions Message-ID: <20171102120926.4srwerqrr7g72e2k@pd.tnic> References: <20171102105018.gdpjhixuf2f5v5e5@pd.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20171102105018.gdpjhixuf2f5v5e5@pd.tnic> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 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 --- 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) --