[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <FFF73D592F13FD46B8700F0A279B802F3954D5DF@ORSMSX114.amr.corp.intel.com>
Date: Sun, 27 May 2018 15:47:23 +0000
From: "Prakhya, Sai Praneeth" <sai.praneeth.prakhya@...el.com>
To: Ard Biesheuvel <ard.biesheuvel@...aro.org>
CC: "linux-efi@...r.kernel.org" <linux-efi@...r.kernel.org>,
"Linux Kernel Mailing List" <linux-kernel@...r.kernel.org>,
Lee Chun-Yi <jlee@...e.com>, Borislav Petkov <bp@...en8.de>,
"Luck, Tony" <tony.luck@...el.com>,
"Will Deacon" <will.deacon@....com>,
"Hansen, Dave" <dave.hansen@...el.com>,
"Mark Rutland" <mark.rutland@....com>,
Bhupesh Sharma <bhsharma@...hat.com>,
"Naresh Bhat" <naresh.bhat@...aro.org>,
"Neri, Ricardo" <ricardo.neri@...el.com>,
Peter Zijlstra <peterz@...radead.org>,
"Shankar, Ravi V" <ravi.v.shankar@...el.com>,
Matt Fleming <matt@...eblueprint.co.uk>,
"Williams, Dan J" <dan.j.williams@...el.com>,
Miguel Ojeda <miguel.ojeda.sandonis@...il.com>
Subject: RE: [PATCH V4 0/3] Use efi_rts_wq to invoke EFI Runtime Services
> > 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
Powered by blists - more mailing lists