On Thu, Jun 27, 2013 at 5:56 PM, Zeng, Star <star.z...@intel.com> wrote:
> The purpose is to reduce the burden to merge the header
> many times when there are many PeiGetVariable() or
> PeiGetNextVariableName() calls.

About how many times would it need to be merged? 10? 1000?

This boot path should only occur in rare circumstances, right?

Is a HOB the best mechanism that we have for storing a global buffer
for a PEI driver? I guess I could also see a PCD being used to store
an allocated buffer pointer. Or, you could install a PPI to the
allocated buffer. But, all of these (including HOBs) seem to be
intended for different purposes than your usage model.

-Jordan

> -----Original Message-----
> From: Jordan Justen [mailto:jljus...@gmail.com]
> Sent: Friday, June 28, 2013 6:11 AM
> To: Zeng, Star
> Cc: edk2-devel@lists.sourceforge.net
> Subject: Re: [edk2] [PATCH 1/2] MdeModulePkg and SecurityPkg: PEI variable 
> does not robustly handle crashes during Reclaim().
>
> In MdeModulePkg/Universal/Variable/Pei/Variable.c GetVariableHeader, why do 
> you need to create the HOB? Could you have a VARIABLE_HEADER structure local 
> variable (on the stack) in FindVariableEx, and merge the header into that 
> variable instead?
>
> (Same question for SecurityPkg/VariableAuthenticated/Pei/Variable.c...)
>
> -Jordan
>
> On Mon, Jun 24, 2013 at 4:29 AM, Zeng, Star <star.z...@intel.com> wrote:
>> ==========
>>
>> MdeModulePkg: Variable drivers robustly handle crashes during Reclaim().
>>
>>
>>
>> PEI variable implementation checks only the variable header signature
>> for validity. This does not seem robust if system crash occurred
>> during previous
>> Reclaim() operation. If the crash occurred while FTW was rewriting the
>> variable FV, the signature could be valid even though the rest of the
>> FV isn't valid.
>>
>> Solution: Add a FaultTolerantWritePei driver to check and provide the
>> FTW last write status, then PEI variable and early phase(before FTW
>> protocol
>> ready) of DXE variable can check the status and determine if all or
>> partial variable data has been backed up in spare block, and then use
>> the backed up data.
>>
>>
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>>
>> Signed-off-by: Star Zeng <star.z...@intel.com>
>>
>> ==========
>>
>> SecurityPkg: Variable drivers robustly handle crashes during Reclaim().
>>
>>
>>
>> PEI variable implementation checks only the variable header signature
>> for validity. This does not seem robust if system crash occurred
>> during previous
>> Reclaim() operation. If the crash occurred while FTW was rewriting the
>> variable FV, the signature could be valid even though the rest of the
>> FV isn't valid.
>>
>> Solution: PEI variable and early phase(before FTW protocol ready) of
>> DXE variable can check the FTW last write status provided by
>> FaultTolerantWritePei and determine if all or partial variable data
>> has been backed up in spare block, and then use the backed up data.
>>
>>
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>>
>> Signed-off-by: Star Zeng <star.z...@intel.com>
>>
>> ==========
>>
>>
>>
>> [Impact]
>>
>> 1. If Platforms use VariablePei.inf now, they need to add
>> FaultTolerantWritePei.inf into the platform *.dsc and *.inf. Because
>> PEI variable will be updated to depend on the added FaultTolerantWritePei.
>>
>> 2. The signature of working block header needs to be updated to
>> gWorkingBlockSignatureGuid because FTW write header and record will be
>> updated and exposed to support crossing archs. Low impact to platform
>> because FaultTolerantWrite DXE driver can help correct or add the
>> working block header at the first boot if platform *.fdf uses the old
>> signature GUID or no working block header init data.
>>
>>
>>
>>
>>
>> Thanks!
>>
>> Star
>>
>>
>> ----------------------------------------------------------------------
>> -------- This SF.net email is sponsored by Windows:
>>
>> Build for Windows Store.
>>
>> http://p.sf.net/sfu/windows-dev2dev
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>>

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to