On 10/20/17 09:57, Ard Biesheuvel wrote:
> On 19 October 2017 at 23:08, Laszlo Ersek <ler...@redhat.com> wrote:

>> * Symptom #1:
>>
>> I built OVMF for IA32, IA32X64 and X64, both "before" and "after". Then
>> I compared the log files, to see the impact of the addition of exactly
>> one UINT32 dynamic PCD to the PCD HOB, on temporary PEI memory usage.
>>
>> - Diff between "before" and "after", for IA32:
>>
>>>  Temp Stack : BaseAddress=0x814000 Length=0x4000
>>>  Temp Heap  : BaseAddress=0x810000 Length=0x4000
>>>  Total temporary memory:    32768 bytes.
>>>    temporary memory stack ever used:       16384 bytes.
> 
> The code that performs this check looks broken to me btw: it looks for
> INIT_CAR_VALUE on the stack, but it is not clear to me where the stack
> is initialised with this value, and that fact that we always seem to
> use exactly the entire stack looks suspicious as well.
> 
> So perhaps you could reuse some of that space for the heap as well?
> 
> #define INIT_CAR_VALUE 0x5AA55AA5

Possibly. Two observations hold me back:

- I did notice that "temporary memory stack ever used" was always the
full size. It seemed wrong (as you say), but without the actual usage
being reported, I wouldn't know how much to reassign from stack to heap.

- OVMF SEC currently halves the temp RAM between stack and heap. It
doesn't look hard to update. But, I'm not attracted to tracking down
other occurrences (if any) of same assumption in other (non-OvmfPkg)
parts of edk2.

Thanks!
Laszlo
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to