MdeModulePkg: Add performance property configuration table
Define PERFORMANCE_PROPERTY, and install performance property configuration table in DxeCorePerformanceLib and SmmCorePerformanceLib. Cc: Andrew Fish <afish@apple.com> Cc: Michael Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Cinnamon Shia <cinnamon.shia@hpe.com> Cc: Jaben Carsey <jaben.carsey@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Andrew Fish <afish@apple.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
committed by
Michael Kinney
parent
c5c9e7e298
commit
cfb0aba793
@ -10,7 +10,7 @@
|
||||
This library is mainly used by DxeCore to start performance logging to ensure that
|
||||
Performance Protocol is installed at the very beginning of DXE phase.
|
||||
|
||||
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2017, 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
|
||||
@ -61,6 +61,8 @@ PERFORMANCE_EX_PROTOCOL mPerformanceExInterface = {
|
||||
GetGaugeEx
|
||||
};
|
||||
|
||||
PERFORMANCE_PROPERTY mPerformanceProperty;
|
||||
|
||||
/**
|
||||
Searches in the gauge array with keyword Handle, Token, Module and Identifier.
|
||||
|
||||
@ -502,6 +504,8 @@ DxeCorePerformanceLibConstructor (
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
PERFORMANCE_PROPERTY *PerformanceProperty;
|
||||
|
||||
|
||||
if (!PerformanceMeasurementEnabled ()) {
|
||||
//
|
||||
@ -531,7 +535,22 @@ DxeCorePerformanceLibConstructor (
|
||||
|
||||
InternalGetPeiPerformance ();
|
||||
|
||||
return Status;
|
||||
Status = EfiGetSystemConfigurationTable (&gPerformanceProtocolGuid, &PerformanceProperty);
|
||||
if (EFI_ERROR (Status)) {
|
||||
//
|
||||
// Install configuration table for performance property.
|
||||
//
|
||||
mPerformanceProperty.Revision = PERFORMANCE_PROPERTY_REVISION;
|
||||
mPerformanceProperty.Reserved = 0;
|
||||
mPerformanceProperty.Frequency = GetPerformanceCounterProperties (
|
||||
&mPerformanceProperty.TimerStartValue,
|
||||
&mPerformanceProperty.TimerEndValue
|
||||
);
|
||||
Status = gBS->InstallConfigurationTable (&gPerformanceProtocolGuid, &mPerformanceProperty);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -56,11 +56,13 @@
|
||||
BaseLib
|
||||
HobLib
|
||||
DebugLib
|
||||
UefiLib
|
||||
|
||||
|
||||
[Guids]
|
||||
## SOMETIMES_CONSUMES ## HOB
|
||||
## PRODUCES ## UNDEFINED # Install protocol
|
||||
## PRODUCES ## SystemTable
|
||||
gPerformanceProtocolGuid
|
||||
## SOMETIMES_CONSUMES ## HOB
|
||||
## PRODUCES ## UNDEFINED # Install protocol
|
||||
|
@ -4,7 +4,7 @@
|
||||
This header file holds the prototypes of the Performance and PerformanceEx Protocol published by this
|
||||
library instance at its constructor.
|
||||
|
||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<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
|
||||
@ -32,6 +32,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#include <Library/PcdLib.h>
|
||||
#include <Library/UefiBootServicesTableLib.h>
|
||||
#include <Library/MemoryAllocationLib.h>
|
||||
#include <Library/UefiLib.h>
|
||||
|
||||
//
|
||||
// Interface declarations for PerformanceEx Protocol.
|
||||
|
Reference in New Issue
Block a user