linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/3] x86: Write FRED RSP0 on return to userspace
@ 2024-08-07  5:47 Xin Li (Intel)
  2024-08-07  5:47 ` [PATCH v1 1/3] x86/entry: Test ti_work for zero before processing individual bits Xin Li (Intel)
                   ` (2 more replies)
  0 siblings, 3 replies; 37+ messages in thread
From: Xin Li (Intel) @ 2024-08-07  5:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: tglx, mingo, bp, dave.hansen, x86, hpa, peterz, andrew.cooper3,
	seanjc

This patch set moves writing MSR_IA32_FRED_RSP0 to return to userspace
from context switch.

In the discussion of save/restore host/guest FRED RSP0 for KVM, Sean
proposed to have the kernel write MSR_IA32_FRED_RSP0 on return to
userspace, i.e., arch_exit_to_user_mode_prepare(), instead of on context
switch. [1]

hpa suggested to test ti_work for zero and then process individual bits
in arch_exit_to_user_mode_prepare.  And a quick measurement shows that
in most cases, ti_work values passed to arch_exit_to_user_mode_prepare()
are zeros, e.g., 99% in kernel build tests.  This zero test change was
then sent to Intel 0day tests, and no perf regression is reported.

Besides, per the discussion of how to write MSR_IA32_FRED_RSP0 with the
introduction of WRMSRNS [2], use the alternatives mechanism to choose
WRMSRNS when it's available, otherwise fallback to WRMSR.

[1] https://lore.kernel.org/lkml/ZpkfkSMPiXrS9r2K@google.com/
[2] https://lore.kernel.org/lkml/15f56e6a-6edd-43d0-8e83-bb6430096514@citrix.com/


Andrew Cooper (1):
  x86/msr: Switch between WRMSRNS and WRMSR with the alternatives
    mechanism

Xin Li (Intel) (2):
  x86/entry: Test ti_work for zero before processing individual bits
  x86/entry: Set FRED RSP0 on return to userspace instead of context
    switch

 arch/x86/include/asm/entry-common.h | 21 ++++++++++++++-------
 arch/x86/include/asm/msr.h          | 28 ++++++++++++++--------------
 arch/x86/include/asm/switch_to.h    |  3 +--
 arch/x86/include/asm/thread_info.h  |  2 ++
 arch/x86/kernel/cpu/cpuid-deps.c    |  1 -
 5 files changed, 31 insertions(+), 24 deletions(-)


base-commit: 9ebdc7589cbb5c976e6c8807cbe13f263d70d32c
-- 
2.45.2


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2024-08-18  6:17 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-07  5:47 [PATCH v1 0/3] x86: Write FRED RSP0 on return to userspace Xin Li (Intel)
2024-08-07  5:47 ` [PATCH v1 1/3] x86/entry: Test ti_work for zero before processing individual bits Xin Li (Intel)
2024-08-07 16:21   ` Brian Gerst
2024-08-07 23:03     ` Xin Li
2024-08-07 18:08   ` Thomas Gleixner
2024-08-07 18:21     ` Thomas Gleixner
2024-08-07 23:01     ` Xin Li
2024-08-07  5:47 ` [PATCH v1 2/3] x86/msr: Switch between WRMSRNS and WRMSR with the alternatives mechanism Xin Li (Intel)
2024-08-07 18:11   ` Thomas Gleixner
2024-08-09 23:07   ` Andrew Cooper
2024-08-10  0:01     ` H. Peter Anvin
2024-08-10  0:25       ` Andrew Cooper
2024-08-16 17:52     ` Xin Li
2024-08-16 18:40       ` Andrew Cooper
2024-08-16 19:18         ` H. Peter Anvin
2024-08-16 21:45           ` Andrew Cooper
2024-08-16 21:26         ` H. Peter Anvin
2024-08-16 22:27           ` Andrew Cooper
2024-08-16 22:34             ` Andrew Cooper
2024-08-16 23:03               ` H. Peter Anvin
2024-08-16 22:59           ` H. Peter Anvin
2024-08-17 23:51             ` H. Peter Anvin
2024-08-17 14:23       ` Borislav Petkov
2024-08-17 14:43         ` Borislav Petkov
2024-08-17 15:44           ` Xin Li
2024-08-17 19:22           ` H. Peter Anvin
2024-08-18  5:59             ` Borislav Petkov
2024-08-17 19:22         ` H. Peter Anvin
2024-08-18  5:49           ` Borislav Petkov
2024-08-18  6:16             ` H. Peter Anvin
2024-08-07  5:47 ` [PATCH v1 3/3] x86/entry: Set FRED RSP0 on return to userspace instead of context switch Xin Li (Intel)
2024-08-07 18:39   ` Thomas Gleixner
2024-08-07 21:55     ` Sean Christopherson
2024-08-07 23:04       ` Thomas Gleixner
2024-08-09 10:45   ` Nikolay Borisov
2024-08-09 17:37     ` Xin Li
2024-08-09 22:43       ` H. Peter Anvin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).