Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757689AbaDWPzE (ORCPT ); Wed, 23 Apr 2014 11:55:04 -0400 Received: from terminus.zytor.com ([198.137.202.10]:39812 "EHLO mail.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755598AbaDWPy6 (ORCPT ); Wed, 23 Apr 2014 11:54:58 -0400 Message-ID: <5357E214.6050501@zytor.com> Date: Wed, 23 Apr 2014 08:53:56 -0700 From: "H. Peter Anvin" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: One Thousand Gnomes CC: Andrew Lutomirski , Linus Torvalds , Borislav Petkov , "H. Peter Anvin" , Linux Kernel Mailing List , Ingo Molnar , Alexander van Heukelum , Konrad Rzeszutek Wilk , Boris Ostrovsky , Arjan van de Ven , Brian Gerst , Alexandre Julliard , Andi Kleen , Thomas Gleixner Subject: Re: [PATCH] x86-64: espfix for 64-bit mode *PROTOTYPE* References: <20140422112312.GB15882@pd.tnic> <20140422144659.GF15882@pd.tnic> <53569467.1030809@zytor.com> <5356A3B6.5050901@zytor.com> <20140423105411.2e166dd8@alan.etchedpixels.co.uk> In-Reply-To: <20140423105411.2e166dd8@alan.etchedpixels.co.uk> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/23/2014 02:54 AM, One Thousand Gnomes wrote: >> Ideally the tests should be doable such that on a normal machine the >> tests can be overlapped with the other things we have to do on that >> path. The exit branch will be strongly predicted in the negative >> direction, so it shouldn't be a significant problem. >> >> Again, this is not the case in the current prototype. > > Or you make sure that you switch to those code paths only after software > has executed syscalls that make it possible it will use a 16bit ss. > Which, again, would introduce a race, I believe, at least if we have an LDT at all (and since we only enter these code paths for LDT descriptors in the first place, it is equivalent to the current code minus the filters.) > The other question I have is - is there any reason we can't fix up the > IRET to do a 32bit return into a vsyscall type userspace page which then > does a long jump or retf to the right place ? I did a writeup on this a while ago. It does have the problem that you need additional memory in userspace, which is per-thread and in the right region of userspace; this pretty much means you have to muck about with the user space stack when user space is running in weird modes. This gets complex very quickly and does have some "footprint". Furthermore, on some CPUs (not including any recent Intel CPUs) there is still a way to leak bits [63:32]. I believe the in-kernel solution is actually simpler. -hpa -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/