On Fri, 24 Sept 2021 at 15:49, Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote: > > 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@xxxxxxxxxx> > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > --- > 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 847f33ffc4aed..39031cfcb6b92 100644 > --- 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; This is generic code and the commit log only talks about arm64. How about other architectures?