mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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:
1 parent
0b03d96373
commit
286059a3bb
2 files changed
+7
-6
No files matched your search
@@ -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> ]`
|
||||||
|
|||||||
@@ -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 )
|
||||||
{
|
{
|
||||||
|
|||||||