From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) (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 0F26C8F7D for ; Fri, 5 Jun 2026 04:39:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=65.109.113.108 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780634350; cv=none; b=TudZCRjkGm8Dy6aT2ATlulq7jvmlBbsYmOQyzAVsfLnSQpJHEK17i2JdYiH/PoYvj/h9T5By2ZI1PWg1jN1q8pR8wBXgICC92yu7TUw5C0J/RPg585ut2cq1okFxAW8dedFsd8z4yQU7Fg6EEBLZhpCMa+F3oM0c4Hd+UYvG1B0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780634350; c=relaxed/simple; bh=EHdXBXdQaI6Jhy98Y5LY/7Vv0bBnyLpX59VttuauqfA=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=nEnqyO+Tr0W2th3MoPSTkivSZtzm5hDXylCzJ/sWSEz9HDKqZfhHMe4QyeDN15NN3VLg7mcoBDJqfgh730Y11UOC2uMmHAV9sq3kD+Y5ugUIXgxkcTGb6f89RjtehxuveV2hCfuzfBEZ1r3CdTvv9TgBKV590/GLiyThPwAuzFY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=alien8.de; spf=pass smtp.mailfrom=alien8.de; dkim=pass (4096-bit key) header.d=alien8.de header.i=@alien8.de header.b=TJPag+8f; arc=none smtp.client-ip=65.109.113.108 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=alien8.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=alien8.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (4096-bit key) header.d=alien8.de header.i=@alien8.de header.b="TJPag+8f" Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 2746240E00C0; Fri, 5 Jun 2026 04:39:06 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=pass (4096-bit key) header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id QP3L4LhZx2fo; Fri, 5 Jun 2026 04:38:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1780634334; bh=DJstqPdPT52S+6dscKUPjJA5ab2syFx9aZw1E3UJbgY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=TJPag+8fX96/6aV0CipUMDsxQHtdGfhKEHD3bZfUIvQ8k+c0uGidKOIwC/Ld1TBFG RMlq6UAJQ+fUIoDZcK+qrdH267faeiAr3Dhv0H0UGsIVhl2WeECpUCsv5bYQneTahH NN+9itFvHivuoTZvYQn0KCLXEgzS/cs5iVrDULsHhIwnXOg3aW/2QXVXpcjaYse48q MFwdwhjvUOeIM74iWZQYWIitx0rbomUlvqX59Q5Dsh6bWeApOzSQ9YBYYQSgHjB+hL YBsjtI1b0DEqIPHsIKkoMPD6xJiTn7g/M2nIEQmSDxI9yS2V4XZ+Nn1RV9mUoVk0VA VtRaO69FYXDl775yx4YHtWM1dp9ZhE93SUlut4Mdqf0fQ2QUb0/JWHQWrTqsmlynOg WUfyZqjGsytDmzmna8H3FGhup5PBm6T8CuaC892LSIuuMp5Y2UTkiGQ1x65XNSeNwg +36pZd1lef87zSIGN0QkvtB6AGAVQin063jEnw9cWqQdjKVsPacpZtSHo2VKjreAJE SvJsNbijpcpe1sAkQwZX7JFa5XfP6ZwXStXajriYvOtnH8pIqZEeNGOxQuvPFU7q41 3BkBBxFfoCQt7o14uJNmqPLUs5i9t73ZnqzEtKhcaeuPALr+RGlE5kOE9RohKDGodB /lQIgBNlbm6gSwfeOY/D0qt8= Received: from stx.tnic (unknown [IPv6:2600:1700:38ca:c00::b]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 0E90840E00B8; Fri, 5 Jun 2026 04:38:49 +0000 (UTC) Date: Thu, 4 Jun 2026 21:38:46 -0700 From: Borislav Petkov To: "H. Peter Anvin" Cc: Andrew Cooper , x86-ML , LKML Subject: Re: Save a WRMSR GS.base? Message-ID: <20260605043846.GCaiJS1iXH8A6Cb3Vy@fat_crate.local> References: <20260604015303.GEaiDafyuU0bwP4Y05@fat_crate.local> <180aeb02-4ed9-436c-ba61-c8559eb7994c@citrix.com> <20260605022428.GBaiIzXL7TgIjMj8d7@fat_crate.local> <18B4FA09-40DE-43D0-A3D0-DD16DE652B87@zytor.com> <20260605025453.GAaiI6fdfradMwrUEk@fat_crate.local> <8820E259-DDAF-46F7-9800-F983D6BBE3DB@zytor.com> <20260605042652.GBaiJQDMRcO_lO0Gig@fat_crate.local> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: On Thu, Jun 04, 2026 at 09:30:33PM -0700, H. Peter Anvin wrote: > On June 4, 2026 9:26:52 PM PDT, Borislav Petkov wrote: > >On Thu, Jun 04, 2026 at 08:20:57PM -0700, H. Peter Anvin wrote: > >> I guess the question is why there is a "first" one. > > > >That happens when we do: > > > >x86_fsgsbase_load() > > > > loadseg(GS) -> load_gs_index() -> native_load_gs_index() -> > > if (cpu_feature_enabled(X86_FEATURE_LKGS)) > > native_lkgs(selector); > > > >then back in x86_fsgsbase_load() we do: > > > > __wrgsbase_inactive(next->gsbase); > > > >which does > > > > wrmsrq(MSR_KERNEL_GS_BASE, gsbase); > > > >on FRED. > > > >But LKGS already wrote MSR_KERNEL_GS_BASE... > > > >> Logically the sequence should be LKGS first, if needed; then WRMSR(NS). LKGS > >> can be replaced with swapgs/mov gs/swapgs on legacy. > > > >Right. > > > >I think avoiding that second WRMSR(MSR_KERNEL_GS_BASE) should give some perf > >back... > > > >Although, I need to think how to make it pretty... > > > > Should be doing wrmsrns... No, I think that second WRMSR* should not happen at all if we have executed LKGS which has already written MSR_KERNEL_GS_BASE, right? -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette