On 05/31/16 10:10, Jordan Justen wrote:
> Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com>
> 
> Pushed as 2f7b34b20842fcc485b39c0e1e91313c47b4d090.

Thanks! I tested it with SMM + S3, it seems to work fine. It also
matches earlier commit 08df58ec3043.

I compared the debug logs as well:

-DecompressMemFvs: OutputBuffer@A00000+0x9E0090
ScratchBuffer@1400000+0x10000 PcdOvmfDecompressionScratchEnd=0x1410000
+DecompressMemFvs: OutputBuffer@A00000+0xAE0090
ScratchBuffer@1500000+0x10000 PcdOvmfDecompressionScratchEnd=0x1510000

Seems okay to me.

----*----

I think it's worth repeating my comment about FVMAIN_SIZE, for the future:

http://thread.gmane.org/gmane.comp.bios.edk2.devel/2754/focus=2755

In that message, I mentioned 25+% being free in FVMAIN_COMPACT (i.e.,
after compression) in my usual builds. Now that ratio is down to 16%
(--> 84%Full) in my SMM build:

  build \
    -a IA32 -a X64 \
    -p OvmfPkg/OvmfPkgIa32X64.dsc \
    -b DEBUG \
    -t GCC48 \
    -D SMM_REQUIRE \
    -D SECURE_BOOT_ENABLE \
    -D HTTP_BOOT_ENABLE

and this doesn't even contain -D NETWORK_IP6_ENABLE. If I add that too,
the free space in FVMAIN_COMPACT falls to 11%:

SECFV [14%Full] 212992 total, 30224 used, 182768 free
FVMAIN_COMPACT [89%Full] 1753088 total, 1575000 used, 178088 free
DXEFV [92%Full] 10485760 total, 9691112 used, 794648 free
PEIFV [22%Full] 917504 total, 206896 used, 710608 free

Honestly, this size growth is worrying me. If we exhaust FVMAIN_COMPACT,
we'll have to resize the flash image file, and that would be terrible.
Migration of VMs is not possible between QEMUs if the source and target
QEMUs use differently sized firmware images. This has serious
consequences for Linux distros that ship OVMF.

I wonder if we could:
- manually remove old compatibility stuff from OVMF (for example, the
ACPI platform code that is invoked when QEMU has no ACPI generator),
- somehow get LTO and/or -Os working, so that fixed PCD checks would
result in code removal.

(RELEASE builds are not a solution -- such builds, without ASSERT()s and
even DEBUG_VERBOSE messages, are plain unsupportable.)

Thanks
Laszlo

> On 2016-05-30 20:41:46, Gary Lin wrote:
>> We reached the size limit again.
>> Building OVMF with the following command
>>
>> $ ./OvmfPkg/build.sh -D SECURE_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D 
>> HTTP_BOOT_ENABLE
>>
>> and it ended up with
>>
>> GenFds.py...
>> GenFv: ERROR 3000: Invalid
>>  : error 7000: Failed to generate FV
>>   the required fv image size 0x900450 exceeds the set fv image size 0x900000
>>
>> Since the new UEFI features, such as HTTPS, are coming, we need a
>> larger DEXFV eventually.
>>
>> Cc: Jordan Justen <jordan.l.jus...@intel.com>
>> Cc: Laszlo Ersek <ler...@redhat.com>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Gary Lin <g...@suse.com>
>> ---
>>  OvmfPkg/OvmfPkgIa32.fdf    | 6 +++---
>>  OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++---
>>  OvmfPkg/OvmfPkgX64.fdf     | 6 +++---
>>  3 files changed, 9 insertions(+), 9 deletions(-)
>>
>> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
>> index 8ab1633..8bba8a6 100644
>> --- a/OvmfPkg/OvmfPkgIa32.fdf
>> +++ b/OvmfPkg/OvmfPkgIa32.fdf
>> @@ -67,10 +67,10 @@ [FD.OVMF_CODE]
>>  
>>  [FD.MEMFD]
>>  BaseAddress   = $(MEMFD_BASE_ADDRESS)
>> -Size          = 0xA00000
>> +Size          = 0xB00000
>>  ErasePolarity = 1
>>  BlockSize     = 0x10000
>> -NumBlocks     = 0xA0
>> +NumBlocks     = 0xB0
>>  
>>  0x000000|0x006000
>>  
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
>> @@ -91,7 +91,7 @@ [FD.MEMFD]
>>  
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
>>  FV = PEIFV
>>  
>> -0x100000|0x900000
>> +0x100000|0xA00000
>>  
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
>>  FV = DXEFV
>>  
>> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
>> index 85fead0..73b50f5 100644
>> --- a/OvmfPkg/OvmfPkgIa32X64.fdf
>> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
>> @@ -67,10 +67,10 @@ [FD.OVMF_CODE]
>>  
>>  [FD.MEMFD]
>>  BaseAddress   = $(MEMFD_BASE_ADDRESS)
>> -Size          = 0xA00000
>> +Size          = 0xB00000
>>  ErasePolarity = 1
>>  BlockSize     = 0x10000
>> -NumBlocks     = 0xA0
>> +NumBlocks     = 0xB0
>>  
>>  0x000000|0x006000
>>  
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
>> @@ -91,7 +91,7 @@ [FD.MEMFD]
>>  
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
>>  FV = PEIFV
>>  
>> -0x100000|0x900000
>> +0x100000|0xA00000
>>  
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
>>  FV = DXEFV
>>  
>> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
>> index dd5ea30..1e3387f 100644
>> --- a/OvmfPkg/OvmfPkgX64.fdf
>> +++ b/OvmfPkg/OvmfPkgX64.fdf
>> @@ -67,10 +67,10 @@ [FD.OVMF_CODE]
>>  
>>  [FD.MEMFD]
>>  BaseAddress   = $(MEMFD_BASE_ADDRESS)
>> -Size          = 0xA00000
>> +Size          = 0xB00000
>>  ErasePolarity = 1
>>  BlockSize     = 0x10000
>> -NumBlocks     = 0xA0
>> +NumBlocks     = 0xB0
>>  
>>  0x000000|0x006000
>>  
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
>> @@ -91,7 +91,7 @@ [FD.MEMFD]
>>  
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
>>  FV = PEIFV
>>  
>> -0x100000|0x900000
>> +0x100000|0xA00000
>>  
>> gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
>>  FV = DXEFV
>>  
>> -- 
>> 2.8.3
>>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
> 

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

Reply via email to