|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH for-4.22] x86/fred: Enable FRED by default on AMD systems
FRED is now believed to be complete for AMD systems, and has had its tyres
kicked by both XenServer and AMD. Enable FRED by default on capable AMD
systems (Zen6 and later).
Support on Intel is still not yet complete. Leave it as tech preview and not
security supported.
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Jan Beulich <jbeulich@xxxxxxxx>
CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
CC: Teddy Astie <teddy.astie@xxxxxxxxxx>
CC: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
The issue on Intel is to do with virtualisation of MSR_SPEC_CTRL for PV
guests, and is waiting on the resolution of a question I've asked Intel.
---
docs/misc/xen-command-line.pandoc | 6 +++---
xen/arch/x86/traps-setup.c | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/misc/xen-command-line.pandoc
b/docs/misc/xen-command-line.pandoc
index ef3c7371895b..50c119e5b79f 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1259,12 +1259,12 @@ does not provide `VM_ENTRY_LOAD_GUEST_PAT`.
### fred (x86)
> `= <bool>`
-> Default: `false`
+> Default: `true` on AMD, `false` otherwise
Flexible Return and Event Delivery is an overhaul of interrupt, exception and
system call handling, fixing many corner cases in the x86 architecture, and
-expected in hardware from 2025. Support in Xen is a work in progress and
-disabled by default.
+expected in hardware from 2026. FRED is fully supported on AMD hardware.
+Intel hardware is still tech preview and not security supported.
### gnttab
> `= List of [ max-ver:<integer>, transitive=<bool>, transfer=<bool> ]`
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index ccbd53fd9db0..a79a3b201389 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -22,7 +22,7 @@ unsigned int __ro_after_init ler_msr;
static bool __initdata opt_ler;
boolean_param("ler", opt_ler);
-int8_t __ro_after_init opt_fred = 0;
+int8_t __ro_after_init opt_fred = -1;
boolean_param("fred", opt_fred);
void nocall entry_PF(void);
@@ -392,7 +392,7 @@ void __init traps_init(void)
}
if ( opt_fred == -1 )
- opt_fred = !pv_shim;
+ opt_fred = (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && !pv_shim;
if ( opt_fred )
{
--
2.39.5
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |