mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Xin Li <xin3.li@intel.com>,
	linux-kernel@vger.kernel.org, x86@kernel.org,
	kvm@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com, peterz@infradead.org,
	andrew.cooper3@citrix.com, seanjc@google.com,
	pbonzini@redhat.com, ravi.v.shankar@intel.com
Subject: Re: [RFC PATCH v2 32/32] x86/fred: disable FRED by default in its early stage
Date: Fri, 06 Jan 2023 13:25:07 -0800	[thread overview]
Message-ID: <46772FCB-7313-47E9-ADCD-8BD556E8F265@zytor.com> (raw)
In-Reply-To: <20230106085617.17248-33-xin3.li@intel.com>

On January 6, 2023 12:56:17 AM PST, Xin Li <xin3.li@intel.com> wrote:
>Disable FRED by default in its early stage.
>
>To enable FRED, a new kernel command line option "fred" needs to be added.
>
>Signed-off-by: Xin Li <xin3.li@intel.com>
>---
> Documentation/admin-guide/kernel-parameters.txt | 4 ++++
> arch/x86/kernel/cpu/common.c                    | 3 +++
> 2 files changed, 7 insertions(+)
>
>diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
>index 42af9ca0127e..0bc76d926dd4 100644
>--- a/Documentation/admin-guide/kernel-parameters.txt
>+++ b/Documentation/admin-guide/kernel-parameters.txt
>@@ -1506,6 +1506,10 @@
> 			Warning: use of this parameter will taint the kernel
> 			and may cause unknown problems.
> 
>+	fred
>+			Forcefully enable flexible return and event delivery,
>+			which is otherwise disabled by default.
>+
> 	ftrace=[tracer]
> 			[FTRACE] will set and start the specified tracer
> 			as early as possible in order to facilitate early
>diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
>index 5de68356fe62..1a160337ad41 100644
>--- a/arch/x86/kernel/cpu/common.c
>+++ b/arch/x86/kernel/cpu/common.c
>@@ -1434,6 +1434,9 @@ static void __init cpu_parse_early_param(void)
> 	char *argptr = arg, *opt;
> 	int arglen, taint = 0;
> 
>+	if (!cmdline_find_option_bool(boot_command_line, "fred"))
>+		setup_clear_cpu_cap(X86_FEATURE_FRED);
>+
> #ifdef CONFIG_X86_32
> 	if (cmdline_find_option_bool(boot_command_line, "no387"))
> #ifdef CONFIG_MATH_EMULATION

Specifically, the intent is to enable it by default once hardware is widely available. This allows e.g. distros to compile in the support for opt-in field testing before throwing the switch.

The motivation for this comes from the SMAP experience where the code was functional and correct when merged, but a change elsewhere in the kernel code base broke it during the intervening period.

  reply	other threads:[~2023-01-06 21:26 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-06  8:55 [RFC PATCH v2 00/32] x86: enable FRED for x86-64 Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 01/32] x86/traps: let common_interrupt() handle IRQ_MOVE_CLEANUP_VECTOR Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 02/32] x86/traps: add a system interrupt table for system interrupt dispatch Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 03/32] x86/traps: add install_system_interrupt_handler() Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 04/32] x86/traps: add external_interrupt() to dispatch external interrupts Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 05/32] x86/traps: add exc_raise_irq() for VMX IRQ reinjection Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 06/32] x86/cpufeature: add the cpu feature bit for FRED Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 07/32] x86/opcode: add ERETU, ERETS instructions to x86-opcode-map Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 08/32] x86/objtool: teach objtool about ERETU and ERETS Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 09/32] x86/cpu: add X86_CR4_FRED macro Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 10/32] x86/fred: add Kconfig option for FRED (CONFIG_X86_FRED) Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 11/32] x86/fred: if CONFIG_X86_FRED is disabled, disable FRED support Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 12/32] x86/cpu: add MSR numbers for FRED configuration Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 13/32] x86/fred: header file for event types Xin Li
2023-01-06  8:55 ` [RFC PATCH v2 14/32] x86/fred: header file with FRED definitions Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 15/32] x86/fred: make unions for the cs and ss fields in struct pt_regs Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 16/32] x86/fred: reserve space for the FRED stack frame Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 17/32] x86/fred: add a page fault entry stub for FRED Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 18/32] x86/fred: add a debug " Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 19/32] x86/fred: add a NMI " Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 20/32] x86/fred: add a machine check " Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 21/32] x86/fred: FRED entry/exit and dispatch code Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 22/32] x86/fred: FRED initialization code Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 23/32] x86/fred: update MSR_IA32_FRED_RSP0 during task switch Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 24/32] x86/fred: let ret_from_fork() jmp to fred_exit_user when FRED is enabled Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 25/32] x86/fred: disallow the swapgs instruction " Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 26/32] x86/fred: no ESPFIX needed " Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 27/32] x86/fred: allow single-step trap and NMI when starting a new thread Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 28/32] x86/fred: fixup fault on ERETU by jumping to fred_entrypoint_user Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 29/32] x86/ia32: do not modify the DPL bits for a null selector Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 30/32] x86/fred: allow FRED systems to use interrupt vectors 0x10-0x1f Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 31/32] x86/fred: allow dynamic stack frame size Xin Li
2023-01-06  8:56 ` [RFC PATCH v2 32/32] x86/fred: disable FRED by default in its early stage Xin Li
2023-01-06 21:25   ` H. Peter Anvin [this message]
2023-01-06 23:00     ` Li, Xin3

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46772FCB-7313-47E9-ADCD-8BD556E8F265@zytor.com \
    --to=hpa@zytor.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=ravi.v.shankar@intel.com \
    --cc=seanjc@google.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=xin3.li@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®