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@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
This commit is contained in:
Andrew Cooper committed 2026-06-03 10:48:49 +01:00
1 parent 0b03d96373
commit 286059a3bb
2 files changed
+7 -6

No files matched your search

+5 -4
View File
@@ -1259,12 +1259,13 @@ does not provide `VM_ENTRY_LOAD_GUEST_PAT`.
### fred (x86) ### fred (x86)
> `= <bool>` > `= <bool>`
> Default: `false` > Default: `true` on AMD, `false` otherwise
Flexible Return and Event Delivery is an overhaul of interrupt, exception and Flexible Return and Event Delivery is an overhaul of interrupt, exception and
system call handling, fixing many corner cases in the x86 architecture, and system call handling, fixing many corner cases in the x86 architecture, and is
expected in hardware from 2025. Support in Xen is a work in progress and available on Intel Panther Lake and Diamond Rapids CPUs, and AMD Zen6 CPUs.
disabled by default. FRED is fully supported on AMD hardware. On Intel hardware it is still tech
preview, and in particular not security supported.
### gnttab ### gnttab
> `= List of [ max-ver:<integer>, transitive=<bool>, transfer=<bool> ]` > `= List of [ max-ver:<integer>, transitive=<bool>, transfer=<bool> ]`
+2 -2
View File
@@ -22,7 +22,7 @@ unsigned int __ro_after_init ler_msr;
static bool __initdata opt_ler; static bool __initdata opt_ler;
boolean_param("ler", 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); boolean_param("fred", opt_fred);
void nocall entry_PF(void); void nocall entry_PF(void);
@@ -392,7 +392,7 @@ void __init traps_init(void)
} }
if ( opt_fred == -1 ) if ( opt_fred == -1 )
opt_fred = !pv_shim; opt_fred = (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && !pv_shim;
if ( opt_fred ) if ( opt_fred )
{ {
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.