On 10/16/15 22:50, Kinney, Michael D wrote:
> Laszlo,
> 
> The PCD setting for TSEG size needs to be set for both IA32 and X64 modules 
> in OvmfPkg/OvmfPkgIa32X64.dsc.
> The this current patch, TSEG PCD is set to DEC default value for PEIMs of 1MB 
> and 2MB for DXE/SMM phase.  
> This causes SMM Core to only see 1MB SMRAM area.
> 
> I found this when trying to verify large number of VCPUs with 
> OvmfPkg/OvmfPkgIa32X64.dsc build.

You are right, of course; a simple grep could have told me that it was
actually PEI *only* where the PCD exerted its influence. So the Ia32X64
hunk in this patch is useless; it only affects DXE.

> 
> In order to test large VCPU numbers, we may also want to increase SMRAM size 
> to more than 2 MB.
> 

I think I'll drop this patch and set the PCD to 8 in the DEC. When I
first set the default (=1), I had a very limited idea of what SMRAM
would be used for.

Thanks!
Laszlo

> Thanks,
> 
> Mike
> 
>> -----Original Message-----
>> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
>> Laszlo Ersek
>> Sent: Wednesday, October 14, 2015 3:27 PM
>> To: edk2-de...@ml01.01.org
>> Subject: [edk2] [PATCH v3 51/52] OvmfPkg: double the SMRAM (TSEG) size for
>> the 64-bit DXE phase builds
>>
>> When building OVMF with -D SMM_REQUIRE -D SECURE_BOOT_ENABLE, using
>> gcc-4.8, for the DEBUG build target, and with DEBUG_VERBOSE enabled in
>> PcdDebugPrintErrorLevel, the build report files report the following
>> binary sizes for the SMM_CORE and SMM modules, in kilobytes:
>>
>>  Driver                      Ia32      X64
>>  ------------------------  ------  -------
>>  PiSmmCore                  56.75    98.22
>>  CpuIo2Smm                  13.47    22.72
>>  SmmLockBox                 24.62    39.69
>>  PiSmmCpuDxeSmm             66.06   123.03
>>  FvbServicesSmm             22.22    37.06
>>  SmmFaultTolerantWriteDxe   35.19    60.06
>>  VariableSmm               356.88   640.28
>>  ------------------------  ------  -------
>>  Total                     575.19  1021.06
>>
>> The 1 MB default for PcdQ35TsegMbytes, from OvmfPkg.dec, is insufficient
>> for loading the privileged half of the variable driver (VariableSmm) on
>> X64. This results in many warnings about the dependent drivers being
>> impossible to dispatch, and ultimately a DXE core assertion failure.
>>
>> PcdQ35TsegMbytes can assume the values 1, 2 or 8; set it to 2 for the DSC
>> files with 64-bit DXE phases. For consistency between the DSC files, spell
>> out 1 in OvmfPkgIa32.dsc too.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Laszlo Ersek <ler...@redhat.com>
>> ---
>>
>> Notes:
>>    v3:
>>    - new in v3
>>
>> OvmfPkg/OvmfPkgIa32.dsc    | 1 +
>> OvmfPkg/OvmfPkgIa32X64.dsc | 1 +
>> OvmfPkg/OvmfPkgX64.dsc     | 1 +
>> 3 files changed, 3 insertions(+)
>>
>> diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
>> index 9040bdc..660a645 100644
>> --- a/OvmfPkg/OvmfPkgIa32.dsc
>> +++ b/OvmfPkg/OvmfPkgIa32.dsc
>> @@ -401,6 +401,7 @@ [PcdsFixedAtBuild]
>>
>> !if $(SMM_REQUIRE) == TRUE
>>   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode|0x01
>> +  gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|1
>> !endif
>>
>> !if $(SECURE_BOOT_ENABLE) == TRUE
>> diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
>> index 4aa7ba5..16dd785 100644
>> --- a/OvmfPkg/OvmfPkgIa32X64.dsc
>> +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
>> @@ -407,6 +407,7 @@ [PcdsFixedAtBuild]
>> [PcdsFixedAtBuild.X64]
>> !if $(SMM_REQUIRE) == TRUE
>>   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode|0x01
>> +  gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|2
>> !endif
> 
> Move PcdQ35TsegMbytes setting above [PcdsFixedAtBuild.X64] 
> 
> !if $(SMM_REQUIRE) == TRUE
>   gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes |2
> !endif
> 
> [PcdsFixedAtBuild.X64]
> !if $(SMM_REQUIRE) == TRUE
>    gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode|0x01
> !endif
> 
>>
>> !if $(SECURE_BOOT_ENABLE) == TRUE
>> diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
>> index 6ea135d..fe4889a 100644
>> --- a/OvmfPkg/OvmfPkgX64.dsc
>> +++ b/OvmfPkg/OvmfPkgX64.dsc
>> @@ -406,6 +406,7 @@ [PcdsFixedAtBuild]
>>
>> !if $(SMM_REQUIRE) == TRUE
>>   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode|0x01
>> +  gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|2
>> !endif
>>
>> !if $(SECURE_BOOT_ENABLE) == TRUE
>> --
>> 1.8.3.1
>>
>>
>> _______________________________________________
>> 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