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