From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012051.outbound.protection.outlook.com [52.101.48.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6380B3B101D for ; Mon, 8 Jun 2026 22:58:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.51 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780959537; cv=fail; b=YJpsLSnEvYM/H94RlPWqwFP8zLhTkjW8jccUpjka0tjpKqgLy918BnN2QFlxOni1qLGfG5o4AldStUvW1pzT5uTztCCJarWbpC/kGG+074zfvUlgWbCweKy5outBnOUKrKqwvl9aU6JFfiJn4q+e7Mlv+lFWyglUbNRCgsUkMyQ= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780959537; c=relaxed/simple; bh=tkbsIQccRWrsREE1EZS7mOYghgCyoSAmKt0jYEbPf/E=; h=Message-ID:Date:Cc:Subject:To:References:From:In-Reply-To: Content-Type:MIME-Version; b=u2F2PjlRcC86r8O5Ult0u76dMvIcmEeOaB7UYuSNBoz9854W9Qj8jUE0gS17stB0qas2s0JkIjba2waWu3tQfz+OPLop48Aw4VAsZA52Og5qGkzjwqKiEiF5Uo+W2OJWYNySPq2DxCD1DQc+jSNMO2/bvB4suLCpAYGGgqqm5xI= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=citrix.com; spf=pass smtp.mailfrom=citrix.com; dkim=pass (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b=Od9FXUjo; arc=fail smtp.client-ip=52.101.48.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=citrix.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=citrix.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="Od9FXUjo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lLt3QO/ucu7385B3R3vzTIxrNj7kDwZc4IOdzPKWzjfnE2yHL0hG9u6EO55gDZbpoAsBL2G4lmKoIwqZzIfQMwj9wXuN9Pm9VDxtvOQLwuswAJaH08cRs20VJcC+Bs/0D0lYnkWeDY/lKD6w0roLQupXeD3NPwu3H0f3OgkdzfKVlEDKf17hZ4/evr2Apu4N90Z1dVZsAQ3VfSmP+nhUSV0czbV2VxHOqRuUYrpWk/hzhLzoYMrRAnVtinXkkn8Bt8uQSO30gZPJcubaAWMRYRux2s/FEz/vCLySDkY8JZM6fJneCPfU1MIhbXZw09gp/MJtcL3qkFaVuKxaWBGGUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UaBc7TevbFekwbidY6BBFh7PaQOJKQsqjymE+FzdRDU=; b=LKIA0e3CWcHp4uYeWB8cyVGX08veGtix0is0o8bNfYrk+tClDX2CBQuzMNVfSpxUZwd7rR+maSy9uGWdQA5EF3T3OiD6P7GT8yezD+Mqs/iPwQKLugfafkWaKwij/Vwg0i5PPi51X3h+NftjBXxIyUoaGogi4KHogCHjf6wS/wWkDp3hyAUVQclUsyFZb1js8UF4wC5mkMiVFVz/iKmtUxlt2AimSkFkToMoUV6FSbRn0FksLBRxjkLSMOKhrVcJ8w5niwoKUxWVc/rpEi+71B8FNo3bBBE8mF33ai/EGRNh9UUv7zY1PNZYuhn0jrMZIGmI6yT1g07lXgquajPSlQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UaBc7TevbFekwbidY6BBFh7PaQOJKQsqjymE+FzdRDU=; b=Od9FXUjouNESyJqxXgc5MxkRaA91mnkbe8fbUH8b2urUzla4Uxu+j7BzFxu8ZHregpqG/whG+bp/399YQV847AwIf3AbjlqkCR6Wayl0R+xbUAmHQfJeWN04ofHHEMcIhM2PfDkPlYWBUvH81d3tn1u+UV/mrQ+wZWXLGWbRc0Q= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com; Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7) by BY5PR03MB5186.namprd03.prod.outlook.com (2603:10b6:a03:221::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 22:58:53 +0000 Received: from CH8PR03MB8275.namprd03.prod.outlook.com ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0092.011; Mon, 8 Jun 2026 22:58:53 +0000 Message-ID: Date: Mon, 8 Jun 2026 23:58:49 +0100 User-Agent: Mozilla Thunderbird Cc: Andrew Cooper , x86-ML , LKML Subject: Re: Save a WRMSR GS.base? To: Borislav Petkov , "H. Peter Anvin" References: <0F905129-3447-4173-A88B-98EAC8C18E4C@zytor.com> <1E2599FB-0A39-4637-B042-EE36DA224264@zytor.com> <2f297456-d6c6-4cc8-95d8-2dac6bea99ec@citrix.com> <20260605171711.GAaiMEl_CahU4oHpMk@fat_crate.local> <079850DB-52FE-4545-825F-E01E918B085D@zytor.com> <20260608143835.GAaibT6_Ypd2OzVkWD@fat_crate.local> <87cfce38-4b5a-4014-a098-2c43e3067df1@zytor.com> <20260608200528.GDaicgiFydU8LVUGL2@fat_crate.local> <20260608212100.GEaicyPO65ii0InnFa@fat_crate.local> Content-Language: en-GB From: Andrew Cooper Autocrypt: addr=andrew.cooper3@citrix.com; keydata= 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 6+ahAA== In-Reply-To: <20260608212100.GEaicyPO65ii0InnFa@fat_crate.local> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: LO4P265CA0311.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:391::16) To CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY5PR03MB5186:EE_ X-MS-Office365-Filtering-Correlation-Id: 9642b938-f130-4fa3-4893-08dec5b18302 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|22082099003|18002099003|6133799003|3023799007|56012099006|11063799006|4143699003|5023799004; X-Microsoft-Antispam-Message-Info: 5+OoVBsVA6BP58mwqRHV4sdHAKeL0dXUlid5DiY6OVzH910PWpP13VZawqP1ZucYT0mJk33ckZDjnUO7MO4tEaYl1eMPvdxwwyjw9bSD16CPLkzks8r1YMoxKroQMTeZQZiNFiHiknxplm9G9myEL9SYwvelSA36tIsfBuxYELPHKvrzlk9TKkuOZF6oJsieBCXmdXYVC8zVlhqYcZ0JYI2p8uA4yT1aSK44gFCQFUAsROMYseXpjgt3ZK4HZwbb5valMwr9efD80MN0aosDv0DFtevBQ4CbmmIzIaKqRHbCMZDLad79I7+3LdRodJJV/PFljA0f1lv7jDm0ucFucXACOee4wEcU2yObxK/z2F0PZwwS0F8INYz37uIsbUrRNRm19341FLcjBGkNtPLpLmuZlorL33JjhEV/LBLg3sHf4Z3bfYh1oQQ5GeOZaHa6MSGQcehjn1te43jLA/EWtpvDi/PMb0Bl0mqz/LDgZ4jFdZXLzWggc91o4+uu+mIbQltegurrW1XgNMtuf88Q416Hy0nbgitzMi2h8kzQb8v9XtGqUbxkYN9FmOAUr9deqxevB/ogI8o237imBBk2aWL5qiTrSmQfZtCXeBK/x/3B/26yT2Bz1+8zAW7Y1PVjEez63p+lJWWjTGbSxuk6DD/wV+aJ/QcLd/nNZqD5DxwQ8P57jO4v88MuiZRKcq2U X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(22082099003)(18002099003)(6133799003)(3023799007)(56012099006)(11063799006)(4143699003)(5023799004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MlE5anY3RlhQaTdmNFdPTWtRRVIvZXVYejY4cXZ1VG91Qm0xbkJyWktCcE9R?= =?utf-8?B?OUFEaEFzOVFzaVVkc3hSVzVTSVFIRGNyc0FUNUlUNUJVNXM2eW1Fa1RRL1VN?= =?utf-8?B?TzUzaFI5ZmZJaktQVGp1VHNXNkhwSkpoUkVIRm94QksvVUlaOWM1ZU84TDJ1?= =?utf-8?B?QUxqZDBXUElvRHpCV2k3Y2UyU05CeEpxY1lHeS9xWWRRS1NJbEdzNSsrSjY4?= =?utf-8?B?SFZWUlhBMXFKb0xlS2dmUTRTZ1lwdTRuTVhWRDhnenZYcVpSczRvMTRCNnA1?= =?utf-8?B?WXlROEY5MTZ5NHFLVGpTUmtmN0E5K0J5M1lxV3U5alZKMUgyQTN3M1k4ZDNS?= =?utf-8?B?NXIyRnJLQjZHZGtVUFh6ZnJjSjZXUmcvZDIwT0IvajRXNHJVcEt4SEZ2V1c1?= =?utf-8?B?aEx3UjlpakQ5b1pTNm56MXVlR3M2WFkrbDlQUUQrTnlXU2Q4YVlSS204dEgv?= =?utf-8?B?ZUxrTUVRU2lKblRuZi9RUUJSVHpLaFVvUCs0L0VwYlplZnFSZGV5MFYrNjNP?= =?utf-8?B?ZlltSTB2N2ZheFdyUWNKN051RlQweVE4d0p4VTdDOFN4eVhNc0lGSXppTFJm?= =?utf-8?B?UVFxWHEwNnRMZ1Mwc2lyVGZzWU41c3VIdWprd0xyVWFETTFWNzlLTGZaN3RJ?= =?utf-8?B?SFBzRVNKUG05Y21XblZBbGhJNmZVY0ZRY2dHWmF5dWtyUWR1SmE1U25YRncw?= =?utf-8?B?bk1Sa1FFa2NRK1kwNWt1UGZSVCtZaWRzNFNoN0xoRnBYdkJkdnpFNURBYUZE?= =?utf-8?B?LzhjcWczdHVOdVd2anBoMEhoMEJYcEQzNDRSQXY1TmlKQ3FHMnZOYm03elJP?= =?utf-8?B?UGFUelQ5eVBmUiszMDZoejArMURhcXRUVzR3ZVZIeDJUemJUQ3NrWnIvNks1?= =?utf-8?B?UEV2MnJtNXNZRkdOR1N5dXkzaGZsandKWGQ3MUsvdkpWbjZ3NFk0MGY2Tm9H?= =?utf-8?B?bFpTR2RSQ2tONW5DVjQwVUlkc3Ryc2QvOGNZdkNFTEN4UnZwRjVGUkp6TTZD?= =?utf-8?B?aFVyREd1Q05jbTlDWFd3TGxkUTN4WnlLOCtkYVU3anA0OTM4ZTlVR0FsSGla?= =?utf-8?B?NDJsUG5TSXVwNEM3M1VYZStNOFZRWDRvNEpNRjFGRHR0QUM0Mk1SVXpZekVK?= =?utf-8?B?aUVJSldpbmY0cTNJa1lETzc3a3N6RXRvUGpPTzdJZDdlL2NyS2hMSCtGaFJZ?= =?utf-8?B?enBoVGFhQVE0MkFJS0hCZmJvb1NUeitQazFMcTVXTHZnekZyUGdOV0xXRzZM?= =?utf-8?B?QStVN3pLQXp0ZFFCTytudnZCZFUyTjhvemR1ZGN3TWRURXR2OEQvN0VLWjg1?= =?utf-8?B?dTVNd3FVUFh1eW5sR0ZTcmV5TGxTU21rMkJSNzMwYkp1bFJod2doblhtdHZy?= =?utf-8?B?ZG9HL1dzNzNkVG1kSkUrd0thNlo0K252SmE1OUxabkVKdXhrL3Y1bDBTN0JZ?= =?utf-8?B?MTUzRG92UTlCWmt1RUFCaVFVR3kyRE9XbGRGajJLVFhNU1AwUDFZdjMyeVZQ?= =?utf-8?B?QUxlWXlpVXpoSjE4OW4vSDRtbVdmL1kyY1hnTGxGQi9GSlY4WjE4Zm9zZTBj?= =?utf-8?B?eUw4SWFQTDdUcktDZXoxMFN3Q0JDdmUrNWxNVTJDeEtrcVcvMFFEblo5a1U1?= =?utf-8?B?bC8raThGVjFIVmJkait4alV5VUdNczFvSHZtdGlFRjNGdHhDNGFBQWIvMjFS?= =?utf-8?B?cnkzbWUyTytTZW9iR0VIa3RzMjdYQVBWZWZZWFRmMitFcHFmdzRlMVdUVGpD?= =?utf-8?B?cVZORW9CMGp1eFJCZVNhRlZxTmNHMEhjQXljN1UvNHV4bSt1WGNLZ2x1anRj?= =?utf-8?B?SldGaXZpYzhxR2FSTVFGcXZFdHFRSFkzUG9aYlM2SFduUlFqbVFqR2JPRTRr?= =?utf-8?B?Wk1vcHA3OVBLQk9GSWVQd3Bqek95SHQ0UWo0cWpieDRMc0NjS2dDbVViSFdh?= =?utf-8?B?Vnk3LzRZcWNPaXRUYnNobWovSDlzb2tzdzhrby9OQ0NpdWxHWUpZYit1MDdE?= =?utf-8?B?cndwS2I3dkNWNUxGcldHWUkvcUcraTE5bGprekRlS3hWUHkva3B5TFpQVEN6?= =?utf-8?B?UktpUjY1WDVpTFdQamI5SHJjME1UVUVKVTJvRVFyQkxHSXJXVTd2Z1BGV3ZJ?= =?utf-8?B?K0hoeU9CVEFVempXMjV4bW50QXlLM3l0NnJVLzJHWlREbUJpbG13bmtaNGZ1?= =?utf-8?B?RnpGS2JwU0tPdC9WTUZVUFdmWmpvZmNxamFqRzdWR29ST05LSHF3OUJoZlQr?= =?utf-8?B?SzhqYXZ4Tm1UbS83SEtPWGJyYWNZdmRQclpCNDloK2hDdVcxVUEzVmJKWTE3?= =?utf-8?B?V2VSVHJxUktRYUdlazduZFppODVqRVZhWXpkZndKTWpwU0tvOEwzYTZubUR4?= =?utf-8?Q?f+vo+xQS1BhfzrWM=3D?= X-OriginatorOrg: citrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9642b938-f130-4fa3-4893-08dec5b18302 X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 22:58:53.1757 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bHa4QOqRuD7QqYI5+hpfsbZEkw7HsjASKEzEgdMRpjTcbi4CedFK7aajAxc5YGCoJEHoKio+FSO1hDXM6JS2c/MzaWj6BGnal5DEGvASc78= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5186 On 08/06/2026 10:21 pm, Borislav Petkov wrote: > On Mon, Jun 08, 2026 at 01:05:28PM -0700, Borislav Petkov wrote: >> I think this is begging to be written down somewhere. Lemme point AI to it and >> see what it would generate. > Something like the below... I am thinking of sticking that somewhere under > Documentation... oh look: Documentation/arch/x86/x86_64/fsgs.rst. Looks like > there was already need to document this stuff which is clearly not really > transparent. What's there is covering the userspace side more tho. > > Anyway, the below is a summary of our thread with AI, it ain't half-bad and > I think we should write it down for future reference. This contains some mechanics, but is lacking on the background. > --- > GS handling on context switches History ------- In 32bit, data segments need reloading on entry to the kernel, and restoring on exit to userspace.  Only the segment selector is necessary, as all segment data resides in the GDT/LDT.  Bases in the GDT/LDT are 32 bits wide.  The segment selector values are user-chosen, and effectively arbitrary. The 32bit mechanism is slow, so in 64bit, segments were made mostly flat so as to not need reloading on entry/exit.  FS and GS segment bases was extended to 64 bits, and become accessible via MSRs, and a separate GS_SHADOW value introduced.  The SWAPGS instruction swaps GS_BASE and GS_SHADOW, as the only action needed on entry/exit. 64bit userspace needed to make the prctl() ARCH_SET_GS to have a base value greater than 32 bits, and a side effect of this syscall was to zero the GS selector. Then the FSGSBASE instructions came along, and userspace could finally choose an arbitrary base address not previously registered via syscall.  Linux's ABI promises to preserve both the selector value and the full base, even when they are disconnected. Mechanisms ---------- > SWAPGS > > Swaps the base-address value in MSR_KERNEL_GS_BASE with the active GS.base in > the hidden portion of the GS selector register. "Swaps the value in " > > MOV , GS > > (legacy path, non-FRED) Loads the GS selector and fetches the descriptor > attributes and base from the GDT/LDT. Loads the GS segment from the GDT/LDT, including selector, attributes, limit and base.  The 32 bits of base from the GDT/LDT are zero-extended into the 64bit base register. > Writes a 32-bit base into the active > GS.base. Does not touch MSR_KERNEL_GS_BASE. Useless for task switching the > user GS base on its own without surrounding SWAPGS calls. I wouldn't quite say useless.  There are ways without a SWAPGS, although they're less neat. The salient point is that MOV GS clobbers the active kernel per-cpu pointer, so must be done with custom error handling/recovery so #GP/#PF/NMI/#MC can get back to the correct per-cpu pointer. > > LKGS > > (FRED path, replaces MOV GS) Like MOV GS in that it loads the selector and > descriptor attributes, but it redirects the base write — instead of updating > the active GS.base, it writes the descriptor base into IA32_KERNEL_GS_BASE > (i.e. MSR_KERNEL_GS_BASE). > > Critical caveat: it only writes a zero-extended 32-bit value, because GDT/LDT > descriptors only encode 32-bit bases. This means it cannot correctly represent > a full 64-bit user-space GS base (e.g. a TLS pointer), so a full 64-bit WRMSR > is still required afterwards. "Exactly like MOV GS, except that the 32bit zero-extended base value is written into GS_SHADOW instead of the active GS.base." "This instruction ensures that the kernels per-cpu pointer stays good, and does not need custom error handling." > WRGSBASE > > (with REX.W) Writes a full 64-bit value directly into the currently active > GS.base as FS.base and GS.base in 64-bit mode are expanded to 64-bit to cover > the full address space. > > The problem in kernel context: the currently active GS.base belongs to the > kernel, not the user task. So using this during context switching would > corrupt the kernel's own GS.base, unless surrounded by SWAPGS (only safe in > IDT mode). Without REX.W, the upper 32 bits of the base are cleared instead. The REX.W aspect isn't interesting from a context switching point of view.  It behaves like most other instructions in this regard, even if it's not interesting to use the 32bit form of WRGSBASE. > > WRMSR MSR_KERNEL_GS_BASE / WRMSRNS MSR_KERNEL_GS_BASE > > Writes a full 64-bit value into MSR_KERNEL_GS_BASE, which holds the inactive > (user-space) GS base — the one that gets swapped into the active GS.base on > SWAPGS. This is the only instruction that can correctly set a 64-bit user GS > base during a context switch from kernel mode. WRMSRNS is the non-serializing > variant, which is preferable here since this MSR is architecturally > non-serializing anyway. This is where the AI didn't get it right. AMD ~silently made FS_BASE/GS_BASE/GS_SHADOW become non-architecturally-serialising, enumerated by 0x80000021.eax[1].FS_GS_NS.  I think this was in Zen3. Intel still has them as architecturally serialising, requiring software to opt in to non-serialising behaviour using WRMSRNS. ~Andrew