mirror of https://github.com/acidanthera/audk.git
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 <cinnamon.shia@hpe.com> Reviewed-by: Samer EL-Haj-Mahmoud <elhaj@hpe.com> Reviewed-by: Joseph Shifflett <joseph.shifflett@hpe.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
This commit is contained in:
parent
96302b80d9
commit
7c50b34343
|
@ -11,6 +11,7 @@
|
||||||
Performance Protocol is installed at the very beginning of DXE phase.
|
Performance Protocol is installed at the very beginning of DXE phase.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
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
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -522,7 +523,9 @@ DxeCorePerformanceLibConstructor (
|
||||||
);
|
);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
mMaxGaugeRecords = INIT_DXE_GAUGE_DATA_ENTRIES + PcdGet8 (PcdMaxPeiPerformanceLogEntries);
|
mMaxGaugeRecords = INIT_DXE_GAUGE_DATA_ENTRIES + (UINT16) (PcdGet16 (PcdMaxPeiPerformanceLogEntries16) != 0 ?
|
||||||
|
PcdGet16 (PcdMaxPeiPerformanceLogEntries16) :
|
||||||
|
PcdGet8 (PcdMaxPeiPerformanceLogEntries));
|
||||||
|
|
||||||
mGaugeData = AllocateZeroPool (sizeof (GAUGE_DATA_HEADER) + (sizeof (GAUGE_DATA_ENTRY_EX) * mMaxGaugeRecords));
|
mGaugeData = AllocateZeroPool (sizeof (GAUGE_DATA_HEADER) + (sizeof (GAUGE_DATA_ENTRY_EX) * mMaxGaugeRecords));
|
||||||
ASSERT (mGaugeData != NULL);
|
ASSERT (mGaugeData != NULL);
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
# Performance and PerformanceEx Protocol are installed at the very beginning of DXE phase.
|
# Performance and PerformanceEx Protocol are installed at the very beginning of DXE phase.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
|
# 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
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# 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
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -67,4 +68,5 @@
|
||||||
|
|
||||||
[Pcd]
|
[Pcd]
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries ## CONSUMES
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries ## CONSUMES
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries16 ## CONSUMES
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask ## CONSUMES
|
gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask ## CONSUMES
|
||||||
|
|
|
@ -4,10 +4,11 @@
|
||||||
This file implements all APIs in Performance Library class in MdePkg. It creates
|
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 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
|
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>
|
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
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -51,10 +52,14 @@ InternalGetPerformanceHobLog (
|
||||||
{
|
{
|
||||||
EFI_HOB_GUID_TYPE *GuidHob;
|
EFI_HOB_GUID_TYPE *GuidHob;
|
||||||
UINTN PeiPerformanceSize;
|
UINTN PeiPerformanceSize;
|
||||||
|
UINT16 PeiPerformanceLogEntries;
|
||||||
|
|
||||||
ASSERT (PeiPerformanceLog != NULL);
|
ASSERT (PeiPerformanceLog != NULL);
|
||||||
ASSERT (PeiPerformanceIdArray != NULL);
|
ASSERT (PeiPerformanceIdArray != NULL);
|
||||||
|
|
||||||
|
PeiPerformanceLogEntries = (UINT16) (PcdGet16 (PcdMaxPeiPerformanceLogEntries16) != 0 ?
|
||||||
|
PcdGet16 (PcdMaxPeiPerformanceLogEntries16) :
|
||||||
|
PcdGet8 (PcdMaxPeiPerformanceLogEntries));
|
||||||
GuidHob = GetFirstGuidHob (&gPerformanceProtocolGuid);
|
GuidHob = GetFirstGuidHob (&gPerformanceProtocolGuid);
|
||||||
|
|
||||||
if (GuidHob != NULL) {
|
if (GuidHob != NULL) {
|
||||||
|
@ -71,11 +76,11 @@ InternalGetPerformanceHobLog (
|
||||||
// PEI Performance HOB was not found, then build one.
|
// PEI Performance HOB was not found, then build one.
|
||||||
//
|
//
|
||||||
PeiPerformanceSize = sizeof (PEI_PERFORMANCE_LOG_HEADER) +
|
PeiPerformanceSize = sizeof (PEI_PERFORMANCE_LOG_HEADER) +
|
||||||
sizeof (PEI_PERFORMANCE_LOG_ENTRY) * PcdGet8 (PcdMaxPeiPerformanceLogEntries);
|
sizeof (PEI_PERFORMANCE_LOG_ENTRY) * PeiPerformanceLogEntries;
|
||||||
*PeiPerformanceLog = BuildGuidHob (&gPerformanceProtocolGuid, PeiPerformanceSize);
|
*PeiPerformanceLog = BuildGuidHob (&gPerformanceProtocolGuid, PeiPerformanceSize);
|
||||||
*PeiPerformanceLog = ZeroMem (*PeiPerformanceLog, PeiPerformanceSize);
|
*PeiPerformanceLog = ZeroMem (*PeiPerformanceLog, PeiPerformanceSize);
|
||||||
|
|
||||||
PeiPerformanceSize = sizeof (UINT32) * PcdGet8 (PcdMaxPeiPerformanceLogEntries);
|
PeiPerformanceSize = sizeof (UINT32) * PeiPerformanceLogEntries;
|
||||||
*PeiPerformanceIdArray = BuildGuidHob (&gPerformanceExProtocolGuid, PeiPerformanceSize);
|
*PeiPerformanceIdArray = BuildGuidHob (&gPerformanceExProtocolGuid, PeiPerformanceSize);
|
||||||
*PeiPerformanceIdArray = ZeroMem (*PeiPerformanceIdArray, PeiPerformanceSize);
|
*PeiPerformanceIdArray = ZeroMem (*PeiPerformanceIdArray, PeiPerformanceSize);
|
||||||
}
|
}
|
||||||
|
@ -180,10 +185,15 @@ StartPerformanceMeasurementEx (
|
||||||
UINT32 *PeiPerformanceIdArray;
|
UINT32 *PeiPerformanceIdArray;
|
||||||
PEI_PERFORMANCE_LOG_ENTRY *LogEntryArray;
|
PEI_PERFORMANCE_LOG_ENTRY *LogEntryArray;
|
||||||
UINT32 Index;
|
UINT32 Index;
|
||||||
|
UINT16 PeiPerformanceLogEntries;
|
||||||
|
|
||||||
|
PeiPerformanceLogEntries = (UINT16) (PcdGet16 (PcdMaxPeiPerformanceLogEntries16) != 0 ?
|
||||||
|
PcdGet16 (PcdMaxPeiPerformanceLogEntries16) :
|
||||||
|
PcdGet8 (PcdMaxPeiPerformanceLogEntries));
|
||||||
|
|
||||||
InternalGetPerformanceHobLog (&PeiPerformanceLog, &PeiPerformanceIdArray);
|
InternalGetPerformanceHobLog (&PeiPerformanceLog, &PeiPerformanceIdArray);
|
||||||
|
|
||||||
if (PeiPerformanceLog->NumberOfEntries >= PcdGet8 (PcdMaxPeiPerformanceLogEntries)) {
|
if (PeiPerformanceLog->NumberOfEntries >= PeiPerformanceLogEntries) {
|
||||||
DEBUG ((DEBUG_ERROR, "PEI performance log array out of resources\n"));
|
DEBUG ((DEBUG_ERROR, "PEI performance log array out of resources\n"));
|
||||||
return RETURN_OUT_OF_RESOURCES;
|
return RETURN_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
# so that it can be taken over by DxeCorePerformanceLib.
|
# so that it can be taken over by DxeCorePerformanceLib.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
|
# 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
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# 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
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -59,4 +60,5 @@
|
||||||
|
|
||||||
[Pcd]
|
[Pcd]
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries ## CONSUMES
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries ## CONSUMES
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries16 ## CONSUMES
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask ## CONSUMES
|
gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask ## CONSUMES
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||||
# Copyright (c) 2016, Linaro Ltd. 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
|
# 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 terms and conditions of the BSD License that accompanies this distribution.
|
||||||
# The full text of the license may be found at
|
# The full text of the license may be found at
|
||||||
|
@ -869,9 +870,18 @@
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleCoalesceFile|{ 0xA6, 0xE4, 0xFD, 0xF7, 0x4C, 0x29, 0x3c, 0x49, 0xB5, 0x0F, 0x97, 0x34, 0x55, 0x3B, 0xB7, 0x57 }|VOID*|0x30000017
|
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.
|
## Maximum number of performance log entries during PEI phase.
|
||||||
|
# Use PcdMaxPeiPerformanceLogEntries16 if the number of entries required is
|
||||||
|
# more than 255.
|
||||||
# @Prompt Maximum number of PEI performance log entries.
|
# @Prompt Maximum number of PEI performance log entries.
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries|40|UINT8|0x0001002f
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries|40|UINT8|0x0001002f
|
||||||
|
|
||||||
|
## Maximum number of performance log entries during PEI phase.
|
||||||
|
# If set to 0, then PcdMaxPeiPerformanceLogEntries determines the number of
|
||||||
|
# entries. If greater than 0, then this PCD determines the number of entries,
|
||||||
|
# and PcdMaxPeiPerformanceLogEntries is ignored.
|
||||||
|
# @Prompt Maximum number of PEI performance log entries.
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries16|0|UINT16|0x00010035
|
||||||
|
|
||||||
## RTC Update Timeout Value(microsecond).
|
## RTC Update Timeout Value(microsecond).
|
||||||
# @Prompt RTC Update Timeout Value.
|
# @Prompt RTC Update Timeout Value.
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdRealTimeClockUpdateTimeout|100000|UINT32|0x00010034
|
gEfiMdeModulePkgTokenSpaceGuid.PcdRealTimeClockUpdateTimeout|100000|UINT32|0x00010034
|
||||||
|
|
Loading…
Reference in New Issue