Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752826AbcCLSFc (ORCPT ); Sat, 12 Mar 2016 13:05:32 -0500 Received: from mail-oi0-f43.google.com ([209.85.218.43]:33286 "EHLO mail-oi0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751618AbcCLSFZ (ORCPT ); Sat, 12 Mar 2016 13:05:25 -0500 MIME-Version: 1.0 In-Reply-To: <56E4577C.1030107@redhat.com> References: <1457715214-7432-1-git-send-email-dvlasenk@redhat.com> <20160312153808.GC17873@gmail.com> <56E4577C.1030107@redhat.com> From: Andy Lutomirski Date: Sat, 12 Mar 2016 10:05:05 -0800 Message-ID: Subject: Re: [PATCH] x86/asm/entry/32: simplify pushes of zeroed pt_regs->REGs To: Denys Vlasenko Cc: Ingo Molnar , Steven Rostedt , Borislav Petkov , "H. Peter Anvin" , Frederic Weisbecker , Will Drewry , Kees Cook , X86 ML , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1500 Lines: 48 On Sat, Mar 12, 2016 at 9:53 AM, Denys Vlasenko wrote: > On 03/12/2016 04:38 PM, Ingo Molnar wrote: >> >> * Denys Vlasenko wrote: >> >>> Use of a temporary R8 register here seems to be unnecessary. >>> >>> "push %r8" is a two-byte insn (it needs REX prefix to specify R8), >>> "push $0" is two-byte too. It seems just using the latter would be >>> no worse. >>> >>> Thus, code had an unnecessary "xorq %r8,%r8" insn. >> >> Neat! >> >>> It probably costs nothing in execution time here since we are probably >>> limited by store bandwidth at this point, but still. >>> >>> Run-tested under QEMU: 32-bit calls still work: >>> >>> / # ./test_syscall_vdso32 >> >> Did you manage to test all 3 compat variants: >> >>> @@ -72,24 +72,23 @@ ENTRY(entry_SYSENTER_compat) >>> @@ -205,17 +204,16 @@ ENTRY(entry_SYSCALL_compat) >>> @@ -316,11 +314,10 @@ ENTRY(entry_INT80_compat) > > Yes. > > test_syscall_vdso32 checks vdso syscall (if available) > and direct int80 syscall. > Booting two times, with different qemu flags: > > qemu-system-x86_64 -cpu Opteron_G4 > qemu-system-x86_64 -cpu SandyBridge > > makes kernel choose either SYSCALL or SYSENTER vdso. > So it's all covered. How carefully did you check the latter bit? In my experience, if KVM is used, your cpu will report as your native CPU's manufacturer regardless of who actually makes the emulated CPU. -machine accel=tcg turns that off. -- Andy Lutomirski AMA Capital Management, LLC