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.

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/trunk/edk2@18727 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Cinnamon Shia
2015-11-05 01:03:14 +00:00
committed by lzeng14
parent c2e5e70a85
commit 303ec9bc9f

View File

@ -14,6 +14,7 @@
timer information to calculate elapsed time for each measurement. timer information to calculate elapsed time for each measurement.
Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved. Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
(C) Copyright 2015 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
@ -110,6 +111,25 @@ DumpStatistics( void )
SHELL_FREE_NON_NULL (StringPtrUnknown); 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. Dump performance data.
@ -218,6 +238,11 @@ ShellCommandRunDp (
#endif // PROFILING_IMPLEMENTED #endif // PROFILING_IMPLEMENTED
} }
//
// Initialize the pre-defined cumulative data.
//
InitCumulativeData ();
// //
// Timer specific processing // Timer specific processing
// //