From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <542C1B9A.4050704@zytor.com> Date: Wed, 01 Oct 2014 08:19:54 -0700 From: "H. Peter Anvin" MIME-Version: 1.0 To: Andy Lutomirski , Sebastian Lackner CC: Thomas Gleixner , X86 ML , Ingo Molnar , Anish Bhatt , "linux-kernel@vger.kernel.org" , Chuck Ebbert , stable Subject: Re: [PATCH v2 1/2] x86_64,entry: Filter RFLAGS.NT on entry from userspace References: <0e906bdeba3660c9766248d3d7229e78a423ca5b.1412138935.git.luto@amacapital.net> <542B8C7F.70108@fds-team.de> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: On 09/30/2014 10:24 PM, Andy Lutomirski wrote: > On Tue, Sep 30, 2014 at 10:09 PM, Sebastian Lackner > wrote: >>> + testl $X86_EFLAGS_NT,EFLAGS(%rsp) /* saved EFLAGS match cpu */ >>> + jz 1f >>> + pushq_cfi $(X86_EFLAGS_IF|X86_EFLAGS_FIXED) >>> + popfq_cfi >>> +1: >>> + >> >> Do you think it makes sense to change the order here, so that no jump happens if >> NT is not set (which happens a bit more often, than the other way round)? Just a >> guess though, haven't measured if pipeline effects have such a big influence in this >> case. ;) >> > > It should be immeasurable in a tight loop, since it will predict > correctly almost every time. And, unless cfi state works across > .pushsection (does it?), getting the cfi annotations right will be > more complicated. > It does, actually... otherwise it would be almost impossible to use in a lot of cases. -hpa