summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCinnamon Shia <cinnamon.shia@hpe.com>2015-12-18 07:33:22 +0000
committervanjeff <vanjeff@Edk2>2015-12-18 07:33:22 +0000
commite52ab636c6e22788d5a968da3198498f20487aaa (patch)
treec3942ada1eb28c590175059f14d00f7a7491fe47
parent66fb2e8febaf403cf1dfaa1bea718faf4529cacd (diff)
downloadedk2-platforms-e52ab636c6e22788d5a968da3198498f20487aaa.tar.xz
ShellPkg/UefiDpLib: Fix a DP cumulative data issue
The value of PERF_CUM_DATA.Count and PERF_CUM_DATA.Duration field keep cumulating on every execution of dp. Initialize the CumData at dp's entry point. (Sync patch r18727 from main trunk.) Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Cinnamon Shia <cinnamon.shia@hpe.com> Reviewed-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/branches/UDK2015@19400 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--ShellPkg/Library/UefiDpLib/Dp.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/ShellPkg/Library/UefiDpLib/Dp.c b/ShellPkg/Library/UefiDpLib/Dp.c
index 82701723c8..62a4e7b577 100644
--- a/ShellPkg/Library/UefiDpLib/Dp.c
+++ b/ShellPkg/Library/UefiDpLib/Dp.c
@@ -14,6 +14,7 @@
timer information to calculate elapsed time for each measurement.
Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
+ (C) Copyright 2015 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
@@ -110,7 +111,26 @@ DumpStatistics( void )
SHELL_FREE_NON_NULL (StringPtrUnknown);
}
-/**
+/**
+ Initialize the cumulative data.
+
+**/
+VOID
+InitCumulativeData (
+ VOID
+ )
+{
+ UINTN Index;
+
+ for (Index = 0; Index < NumCum; ++Index) {
+ CumData[Index].Count = 0;
+ CumData[Index].MinDur = PERF_MAXDUR;
+ CumData[Index].MaxDur = 0;
+ CumData[Index].Duration = 0;
+ }
+}
+
+/**
Dump performance data.
@param[in] ImageHandle The image handle.
@@ -219,6 +239,11 @@ ShellCommandRunDp (
}
//
+ // Initialize the pre-defined cumulative data.
+ //
+ InitCumulativeData ();
+
+ //
// Timer specific processing
//
// Get the Performance counter characteristics: