From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933730AbdK2QvG (ORCPT ); Wed, 29 Nov 2017 11:51:06 -0500 Received: from smtp-out6.electric.net ([192.162.217.184]:55113 "EHLO smtp-out6.electric.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932096AbdK2QvD (ORCPT ); Wed, 29 Nov 2017 11:51:03 -0500 From: David Laight To: "'Andy Lutomirski'" CC: Peter Zijlstra , Ingo Molnar , Jarkko Nikula , linux-kernel , Thomas Gleixner , "Linus Torvalds" , Borislav Petkov Subject: RE: [PATCH] x86/entry/64: Fix native_load_gs_index() SWAPGS handling with IRQ state tracing enabled Thread-Topic: [PATCH] x86/entry/64: Fix native_load_gs_index() SWAPGS handling with IRQ state tracing enabled Thread-Index: AQHTaR8fKskq+GLGsUC5ju1OFMHHkKMrb/rwgAAaX4CAAAE0cA== Date: Wed, 29 Nov 2017 16:51:20 +0000 Message-ID: References: <0fede9f9-88b0-a6e7-1027-dfb2019b8ef2@linux.intel.com> <20171129070951.hjjjpbyilzaak4ig@gmail.com> <20171129124711.slmq5emx4f26c4zp@hirez.programming.kicks-ass.net> <4f2c1cf45fd04e83a7d360d0d602830e@AcuMS.aculab.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [fd9f:af1c:a25b:0:43c:695e:880f:8750] Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-Outbound-IP: 156.67.243.126 X-Env-From: David.Laight@ACULAB.COM X-Proto: esmtps X-Revdns: X-HELO: AcuMS.aculab.com X-TLS: TLSv1.2:ECDHE-RSA-AES256-SHA384:256 X-Authenticated_ID: X-PolicySMART: 3396946, 3397078 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by nfs id vATGpChx023176 From: Andy Lutomirski > Sent: 29 November 2017 16:23 > > I can't remember what happens when swapgs itself faults. ... > SWAPGS never faults. Ah yes, I remember, it only restores the offset. For 32bit processes you need to do a 'pop %gs' to recover the segment register itself - and that can fault. SWAPGS is a PITA. The hardware designers should have tried to write all the interrupt handling code. David