RE: [PATCH V4 0/3] Use efi_rts_wq to invoke EFI Runtime Services

From: Prakhya, Sai Praneeth
Date: Sun May 27 2018 - 11:47:53 EST


> > Another follow on question is, does every firmware support both
> > blocking and non-blocking variants (specially legacy EFI firmware)? I
> > am worried about this because, presently efi_delete_dummy_variable()
> > uses set_variable() and
> > query_variable_info() but if I change efi_delete_dummy_variable() to
> > use non-blocking variants and if they arenât supported, then, I guess,
> > efi_delete_dummy_variable() might fail :(
> >
> > So, could you please clarify on that?
> >
>
> I don't follow. Why should it make any difference to the firmware whether the
> OS routines blocks or gives up? We always honor the mutual exclusion between
> different invocations of runtime services, and the firmware itself has no
> awareness of the kind of scheduling the OS needs to do to ensure this.

Sorry! my bad.. I thought firmware (with EFI System table revision > 2.0 ) offers two
types of efi run time services, a blocking variant and a non-blocking variant. But, now I
noticed in the spec that there is only set_variable() but _no_ set_variable_nonblocking().
Same with query_variable_info(). The same is also seen in runtime-wrappers.c file.
Both the blocking and non-blocking variants call the same efi runtime service. I see that
non-blocking() variants are just an additional feature (API) offered by OS.

Regards,
Sai