Laszlo, Yes. I agree. It's a good idea!
Thanks! Jeff -----Original Message----- From: edk2-devel [mailto:[email protected]] On Behalf Of Laszlo Ersek Sent: Tuesday, July 12, 2016 2:34 AM To: Fan, Jeff Cc: Kinney, Michael D; Justen, Jordan L; edk2-devel-01 Subject: Re: [edk2] [PATCH 2/4] OvmfPkg: increase the S3 permanent PEI RAM size by 8.5 MB Jeff, On 07/07/16 21:10, Laszlo Ersek wrote: > When setting PcdCpuMaxLogicalProcessorNumber to 255, then CpuMpPei > seems to require a bit more than 8MB of permanent PEI RAM in the > PrepareAPStartupVector() function. (With the default PCD value of 64, > it needs one quarter of that: approximately 2MB.) Do you think we could bring PcdS3AcpiReservedMemorySize closer to the actual needs of CpuMpPei? For example, if there is a simple coefficient between the memory needs of CpuMpPei and PcdCpuMaxLogicalProcessorNumber, we could do that arithmetic in the FDF file. For example, we could create a macro, then set both PcdCpuMaxLogicalProcessorNumber from it (directly) and also PcdS3AcpiReservedMemorySize (indirectly, by multiplying the macro with a coefficient we'd know from CpuMpPei). Thanks Laszlo > On the S3 resume path, we install only 32 KB of permanent PEI RAM > however, and even that is almost exhausted already: > >> CpuMpPei: WakeupBuffer = 0x9F000 >> AllocatePages failed: No 0x7FF Pages is available. >> There is only left 0x1 pages memory resource to be allocated. >> >> ASSERT_EFI_ERROR (Status = Out of Resources) ASSERT >> UefiCpuPkg/CpuMpPei/CpuMpPei.c(730): !EFI_ERROR (Status) > > Increase PcdS3AcpiReservedMemorySize by 8.5 MB (0x880000 bytes, 0x880 > pages). The areas above the S3 permanent PEI RAM (decompressed PEI FV, > decompressed DXE FV) are shifted up by the same amount. The > EfiACPIMemoryNVS footprint increases similarly (but only if QEMU is > instructed to enable S3). > > Cc: Jeff Fan <[email protected]> > Cc: Jordan Justen <[email protected]> > Cc: Michael Kinney <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Laszlo Ersek <[email protected]> > --- > OvmfPkg/OvmfPkgIa32.fdf | 10 +++++----- > OvmfPkg/OvmfPkgIa32X64.fdf | 10 +++++----- > OvmfPkg/OvmfPkgX64.fdf | 10 +++++----- > 3 files changed, 15 insertions(+), 15 deletions(-) > > diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf index > 59a4024ff026..a55ddf05594f 100644 > --- a/OvmfPkg/OvmfPkgIa32.fdf > +++ b/OvmfPkg/OvmfPkgIa32.fdf > @@ -67,10 +67,10 @@ [FD.OVMF_CODE] > > [FD.MEMFD] > BaseAddress = $(MEMFD_BASE_ADDRESS) > -Size = 0xB00000 > +Size = 0x1380000 > ErasePolarity = 1 > BlockSize = 0x10000 > -NumBlocks = 0xB0 > +NumBlocks = 0x138 > > 0x000000|0x006000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenS > paceGuid.PcdOvmfSecPageTablesSize > @@ -84,14 +84,14 @@ [FD.MEMFD] > 0x010000|0x008000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmfPkgTokenS > paceGuid.PcdOvmfSecPeiTempRamSize > > -0x018000|0x008000 > +0x018000|0x888000 > > gUefiOvmfPkgTokenSpaceGuid.PcdS3AcpiReservedMemoryBase|gEfiIntelFramew > orkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemorySize > > -0x020000|0x0E0000 > +0x8A0000|0x0E0000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceG > uid.PcdOvmfPeiMemFvSize > FV = PEIFV > > -0x100000|0xA00000 > +0x980000|0xA00000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceG > uid.PcdOvmfDxeMemFvSize > FV = DXEFV > > diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf > index c6167a4176af..4503a9fdeb0f 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.fdf > +++ b/OvmfPkg/OvmfPkgIa32X64.fdf > @@ -67,10 +67,10 @@ [FD.OVMF_CODE] > > [FD.MEMFD] > BaseAddress = $(MEMFD_BASE_ADDRESS) > -Size = 0xB00000 > +Size = 0x1380000 > ErasePolarity = 1 > BlockSize = 0x10000 > -NumBlocks = 0xB0 > +NumBlocks = 0x138 > > 0x000000|0x006000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenS > paceGuid.PcdOvmfSecPageTablesSize > @@ -84,14 +84,14 @@ [FD.MEMFD] > 0x010000|0x008000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmfPkgTokenS > paceGuid.PcdOvmfSecPeiTempRamSize > > -0x018000|0x008000 > +0x018000|0x888000 > > gUefiOvmfPkgTokenSpaceGuid.PcdS3AcpiReservedMemoryBase|gEfiIntelFramew > orkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemorySize > > -0x020000|0x0E0000 > +0x8A0000|0x0E0000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceG > uid.PcdOvmfPeiMemFvSize > FV = PEIFV > > -0x100000|0xA00000 > +0x980000|0xA00000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceG > uid.PcdOvmfDxeMemFvSize > FV = DXEFV > > diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf index > 30b0c2ba3fc8..9a539aa7b3c6 100644 > --- a/OvmfPkg/OvmfPkgX64.fdf > +++ b/OvmfPkg/OvmfPkgX64.fdf > @@ -67,10 +67,10 @@ [FD.OVMF_CODE] > > [FD.MEMFD] > BaseAddress = $(MEMFD_BASE_ADDRESS) > -Size = 0xB00000 > +Size = 0x1380000 > ErasePolarity = 1 > BlockSize = 0x10000 > -NumBlocks = 0xB0 > +NumBlocks = 0x138 > > 0x000000|0x006000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenS > paceGuid.PcdOvmfSecPageTablesSize > @@ -84,14 +84,14 @@ [FD.MEMFD] > 0x010000|0x008000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmfPkgTokenS > paceGuid.PcdOvmfSecPeiTempRamSize > > -0x018000|0x008000 > +0x018000|0x888000 > > gUefiOvmfPkgTokenSpaceGuid.PcdS3AcpiReservedMemoryBase|gEfiIntelFramew > orkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemorySize > > -0x020000|0x0E0000 > +0x8A0000|0x0E0000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceG > uid.PcdOvmfPeiMemFvSize > FV = PEIFV > > -0x100000|0xA00000 > +0x980000|0xA00000 > > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceG > uid.PcdOvmfDxeMemFvSize > FV = DXEFV > > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

