Cinnamon, Minor rewording of the detailed descriptions of the PCDs included below.
With those comment changes: Reviewed-by: Michael Kinney <[email protected]> Mike > -----Original Message----- > From: edk2-devel [mailto:[email protected]] On Behalf Of > Cinnamon Shia > Sent: Monday, March 7, 2016 10:07 AM > To: [email protected] > Subject: [edk2] [PATCH v3] MdeModulePkg: Increase the maximum number of PEI > performance > log entries > > The maximum number of PEI performance log entries is 255. > Add a new PCD, PcdMaxPeiPerformanceLogEntries16, to increase the maximum > number of PEI performance log entries. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Cinnamon Shia <[email protected]> > Reviewed-by: Samer EL-Haj-Mahmoud <[email protected]> > --- > .../DxeCorePerformanceLib/DxeCorePerformanceLib.c | 5 ++++- > .../DxeCorePerformanceLib/DxeCorePerformanceLib.inf | 6 ++++-- > .../Library/PeiPerformanceLib/PeiPerformanceLib.c | 20 > +++++++++++++++----- > .../Library/PeiPerformanceLib/PeiPerformanceLib.inf | 6 ++++-- > MdeModulePkg/MdeModulePkg.dec | 9 +++++++++ > 5 files changed, 36 insertions(+), 10 deletions(-) > > diff --git > a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c > b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c > index 0eb8e57..7c35b8d 100644 > --- a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c > +++ b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c > @@ -11,6 +11,7 @@ > Performance Protocol is installed at the very beginning of DXE phase. > > Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR> > +(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> > This program and the accompanying materials > are licensed and made available under the terms and conditions of the BSD > License > which accompanies this distribution. The full text of the license may be > found at > @@ -522,7 +523,9 @@ DxeCorePerformanceLibConstructor ( > ); > ASSERT_EFI_ERROR (Status); > > - mMaxGaugeRecords = INIT_DXE_GAUGE_DATA_ENTRIES + PcdGet8 > (PcdMaxPeiPerformanceLogEntries); > + mMaxGaugeRecords = INIT_DXE_GAUGE_DATA_ENTRIES + (UINT16) (PcdGet16 > (PcdMaxPeiPerformanceLogEntries) != 0 ? > + PcdGet16 > (PcdMaxPeiPerformanceLogEntries) != 0 : > + PcdGet8 > (PcdMaxPeiPerformanceLogEntries)); > > mGaugeData = AllocateZeroPool (sizeof (GAUGE_DATA_HEADER) + (sizeof > (GAUGE_DATA_ENTRY_EX) * mMaxGaugeRecords)); > ASSERT (mGaugeData != NULL); > diff --git > a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf > b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf > index 5f29063..f73d0a4 100644 > --- a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf > +++ b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf > @@ -10,6 +10,7 @@ > # Performance and PerformanceEx Protocol are installed at the very > beginning of DXE > phase. > # > # Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> > +# (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> > # This program and the accompanying materials > # are licensed and made available under the terms and conditions of the BSD > License > # which accompanies this distribution. The full text of the license may be > found at > @@ -66,5 +67,6 @@ > gPerformanceExProtocolGuid > > [Pcd] > - gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries ## CONSUMES > - gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask ## CONSUMES > + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries ## CONSUMES > + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries16 ## CONSUMES > + gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask ## CONSUMES > diff --git a/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c > b/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c > index 9674bbc..5a3c784 100644 > --- a/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c > +++ b/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c > @@ -4,10 +4,11 @@ > This file implements all APIs in Performance Library class in MdePkg. It > creates > performance logging GUIDed HOB on the first performance logging and then > logs the > performance data to the GUIDed HOB. Due to the limitation of temporary > RAM, the > maximum > - number of performance logging entry is specified by > PcdMaxPeiPerformanceLogEntries. > + number of performance logging entry is specified by > PcdMaxPeiPerformanceLogEntries > or > + PcdMaxPeiPerformanceLogEntries16 > > Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR> > -(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR> > +(C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR> > This program and the accompanying materials > are licensed and made available under the terms and conditions of the BSD > License > which accompanies this distribution. The full text of the license may be > found at > @@ -51,10 +52,14 @@ InternalGetPerformanceHobLog ( > { > EFI_HOB_GUID_TYPE *GuidHob; > UINTN PeiPerformanceSize; > + UINT16 PeiPerformanceLogEntries; > > ASSERT (PeiPerformanceLog != NULL); > ASSERT (PeiPerformanceIdArray != NULL); > > + PeiPerformanceLogEntries = (UINT16) (PcdGet16 > (PcdMaxPeiPerformanceLogEntries16) != > 0 ? > + PcdGet16 > (PcdMaxPeiPerformanceLogEntries16) : > + PcdGet8 > (PcdMaxPeiPerformanceLogEntries)); > GuidHob = GetFirstGuidHob (&gPerformanceProtocolGuid); > > if (GuidHob != NULL) { > @@ -71,11 +76,11 @@ InternalGetPerformanceHobLog ( > // PEI Performance HOB was not found, then build one. > // > PeiPerformanceSize = sizeof (PEI_PERFORMANCE_LOG_HEADER) + > - sizeof (PEI_PERFORMANCE_LOG_ENTRY) * PcdGet8 > (PcdMaxPeiPerformanceLogEntries); > + sizeof (PEI_PERFORMANCE_LOG_ENTRY) * > PeiPerformanceLogEntries; > *PeiPerformanceLog = BuildGuidHob (&gPerformanceProtocolGuid, > PeiPerformanceSize); > *PeiPerformanceLog = ZeroMem (*PeiPerformanceLog, > PeiPerformanceSize); > > - PeiPerformanceSize = sizeof (UINT32) * PcdGet8 > (PcdMaxPeiPerformanceLogEntries); > + PeiPerformanceSize = sizeof (UINT32) * PeiPerformanceLogEntries; > *PeiPerformanceIdArray = BuildGuidHob (&gPerformanceExProtocolGuid, > PeiPerformanceSize); > *PeiPerformanceIdArray = ZeroMem (*PeiPerformanceIdArray, > PeiPerformanceSize); > } > @@ -180,10 +185,15 @@ StartPerformanceMeasurementEx ( > UINT32 *PeiPerformanceIdArray; > PEI_PERFORMANCE_LOG_ENTRY *LogEntryArray; > UINT32 Index; > + UINT16 PeiPerformanceLogEntries; > + > + PeiPerformanceLogEntries = (UINT16) (PcdGet16 > (PcdMaxPeiPerformanceLogEntries16) != > 0 ? > + PcdGet16 > (PcdMaxPeiPerformanceLogEntries16) : > + PcdGet8 > (PcdMaxPeiPerformanceLogEntries)); > > InternalGetPerformanceHobLog (&PeiPerformanceLog, &PeiPerformanceIdArray); > > - if (PeiPerformanceLog->NumberOfEntries >= PcdGet8 > (PcdMaxPeiPerformanceLogEntries)) > { > + if (PeiPerformanceLog->NumberOfEntries >= PeiPerformanceLogEntries) { > DEBUG ((DEBUG_ERROR, "PEI performance log array out of resources\n")); > return RETURN_OUT_OF_RESOURCES; > } > diff --git a/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf > b/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf > index 7a5d240..08aa064 100644 > --- a/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf > +++ b/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf > @@ -6,6 +6,7 @@ > # so that it can be taken over by DxeCorePerformanceLib. > # > # Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> > +# (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> > # This program and the accompanying materials > # are licensed and made available under the terms and conditions of the BSD > License > # which accompanies this distribution. The full text of the license may be > found at > @@ -58,5 +59,6 @@ > gPerformanceExProtocolGuid > > [Pcd] > - gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries ## CONSUMES > - gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask ## CONSUMES > + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries ## CONSUMES > + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries16 ## CONSUMES > + gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask ## CONSUMES > diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec > index efd870b..9d3df4b 100644 > --- a/MdeModulePkg/MdeModulePkg.dec > +++ b/MdeModulePkg/MdeModulePkg.dec > @@ -5,6 +5,7 @@ > # > # Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR> > # Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR> > +# (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> > # This program and the accompanying materials are licensed and made > available under > # the terms and conditions of the BSD License that accompanies this > distribution. > # The full text of the license may be found at > @@ -869,9 +870,17 @@ > gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleCoalesceFile|{ 0xA6, 0xE4, 0xFD, > 0xF7, > 0x4C, 0x29, 0x3c, 0x49, 0xB5, 0x0F, 0x97, 0x34, 0x55, 0x3B, 0xB7, 0x57 > }|VOID*|0x30000017 > > ## Maximum number of performance log entries during PEI phase. > + # PcdMaxPeiPerformanceLogEntries is UINT8 and for backward compatible. > + # If the number of performance log entries during PEI phase is more than > 255, use > PcdMaxPeiPerformanceLogEntries16> # @Prompt Maximum number of PEI > performance log entries. > > gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries|40|UINT8|0x0001002f > Change new comment lines to: ============================ ## Maximum number of performance log entries during PEI phase. # Use PcdMaxPeiPerformanceLogEntries16 if the number of entries required is # more than 255. > + ## Maximum number of performance log entries during PEI phase. > + # PcdMaxPeiPerformanceLogEntries is UINT8 and for backward compatible. > + # If the number of performance log entries during PEI phase is more than > 255, use > PcdMaxPeiPerformanceLogEntries16 > + # @Prompt Maximum number of PEI performance log entries. > + > gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries16|0|UINT16|0x00010035 > + Change new comment lines to: ============================ ## Maximum number of performance log entries during PEI phase. # If set to 0, then PcdMaxPeiPerformanceLogEntries determines the number of # entries. If greater than 0, the this PCD determines the number of entries, # and PcdMaxPeiPerformanceLogEntries is ignored. > ## RTC Update Timeout Value(microsecond). > # @Prompt RTC Update Timeout Value. > > gEfiMdeModulePkgTokenSpaceGuid.PcdRealTimeClockUpdateTimeout|100000|UINT32|0x00010034 > -- > 2.7.0.windows.2 > > _______________________________________________ > 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

