diff options
Diffstat (limited to 'debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch')
-rw-r--r-- | debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch b/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch new file mode 100644 index 000000000..fe647f6c4 --- /dev/null +++ b/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch @@ -0,0 +1,46 @@ +From 6c62319a5f5caaf647997706f6996ce4e8dfc939 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Date: Thu, 26 Jul 2018 15:03:16 +0200 +Subject: [PATCH 056/347] efi: Disable runtime services on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz + +Based on meassurements the EFI functions get_variable / +get_next_variable take up to 2us which looks okay. +The functions get_time, set_time take around 10ms. Those 10ms are too +much. Even one ms would be too much. +Ard mentioned that SetVariable might even trigger larger latencies if +the firware will erase flash blocks on NOR. + +The time-functions are used by efi-rtc and can be triggered during +runtimed (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. + +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> +--- + drivers/firmware/efi/efi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c +index e89932f1ae65..221957ccdb0b 100644 +--- a/drivers/firmware/efi/efi.c ++++ b/drivers/firmware/efi/efi.c +@@ -87,7 +87,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_BASE); + static int __init setup_noefi(char *arg) + { + disable_runtime = true; +-- +2.36.1 + |