diff options
Diffstat (limited to 'debian/patches-rt/efi-Disable-runtime-services-on-RT.patch')
-rw-r--r-- | debian/patches-rt/efi-Disable-runtime-services-on-RT.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/debian/patches-rt/efi-Disable-runtime-services-on-RT.patch b/debian/patches-rt/efi-Disable-runtime-services-on-RT.patch new file mode 100644 index 000000000..c4a4099f6 --- /dev/null +++ b/debian/patches-rt/efi-Disable-runtime-services-on-RT.patch @@ -0,0 +1,41 @@ +From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Date: Thu, 26 Jul 2018 15:03:16 +0200 +Subject: [PATCH] efi: Disable runtime services on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.15/older/patches-5.15.3-rt21.tar.xz + +Based on measurements the EFI functions get_variable / +get_next_variable take up to 2us which looks okay. +The functions get_time, set_time take around 10ms. These 10ms are too +much. Even one ms would be too much. +Ard mentioned that SetVariable might even trigger larger latencies if +the firmware will erase flash blocks on NOR. + +The time-functions are used by efi-rtc and can be triggered during +run-time (either via explicit read/write or ntp sync). + +The variable write could be used by pstore. +These functions can be disabled without much of a loss. The poweroff / +reboot hooks may be provided by PSCI. + +Disable EFI's runtime wrappers on PREEMPT_RT. + +This was observed on "EFI v2.60 by SoftIron Overdrive 1000". + +Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Link: https://lkml.kernel.org/r/20210924134919.1913476-2-bigeasy@linutronix.de +--- + drivers/firmware/efi/efi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/firmware/efi/efi.c ++++ b/drivers/firmware/efi/efi.c +@@ -66,7 +66,7 @@ struct mm_struct efi_mm = { + + struct workqueue_struct *efi_rts_wq; + +-static bool disable_runtime; ++static bool disable_runtime = IS_ENABLED(CONFIG_PREEMPT_RT); + static int __init setup_noefi(char *arg) + { + disable_runtime = true; |