From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757835AbaDWRp2 (ORCPT ); Wed, 23 Apr 2014 13:45:28 -0400 Received: from mail-vc0-f172.google.com ([209.85.220.172]:49229 "EHLO mail-vc0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757770AbaDWRpX (ORCPT ); Wed, 23 Apr 2014 13:45:23 -0400 MIME-Version: 1.0 In-Reply-To: <5357F82D.8020307@zytor.com> References: <20140422112312.GB15882@pd.tnic> <20140422144659.GF15882@pd.tnic> <53569467.1030809@zytor.com> <5356A3B6.5050901@zytor.com> <20140423105411.2e166dd8@alan.etchedpixels.co.uk> <5357E214.6050501@zytor.com> <5357F572.1030804@zytor.com> <5357F82D.8020307@zytor.com> From: Andrew Lutomirski Date: Wed, 23 Apr 2014 10:45:02 -0700 Message-ID: Subject: Re: [PATCH] x86-64: espfix for 64-bit mode *PROTOTYPE* To: "H. Peter Anvin" Cc: One Thousand Gnomes , 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 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 23, 2014 at 10:28 AM, H. Peter Anvin wrote: > On 04/23/2014 10:25 AM, Andrew Lutomirski wrote: >> On Wed, Apr 23, 2014 at 10:16 AM, H. Peter Anvin wrote: >>> On 04/23/2014 10:08 AM, Andrew Lutomirski wrote: >>>> >>>> The only way I can see to trigger the race is with sigreturn, but it's >>>> still there. Sigh. >>> >>> I don't see why sigreturn needs to be involved... all you need is >>> modify_ldt() on one CPU while the other is in the middle of an IRET >>> return. Small window, so hard to hit, but still. >> >> If you set the flag as soon as anyone calls modify_ldt, before any >> descriptor is installed, then I don't think this can happen. But >> there's still sigreturn, and I don't think this is worth all the >> complexity to save a single branch on #GP. >> > > Who cares? Since we only need to enter the fixup path for LDT > selectors, anything that is dependent on having called modify_ldt() is > already redundant. But you still have to test this, and folding it into the existing check for thread flags would eliminate that. Still, I think this would not be worth it, even if it were correct. > > In some ways that is the saving grace. SS being an LDT selector is > fortunately a rare case. > >> I do mean intra-kernel. And yes, this has nothing to do with espfix, >> but it would make write_msr_safe fail more quickly :) > > And, pray tell, how important is that? Not very. Page faults may be a different story for some workloads, particularly if they are IO-heavy. Returning to preempted kernel threads may also matter. For my particular workload, returns from rescheduling interrupts delivered to idle cpus probably also matters, but the fact that those interrupts are happening at all is a bug that tglx is working on. --Andy --Andy