summaryrefslogtreecommitdiffstats
path: root/src/utl_cpuu.cpp
diff options
context:
space:
mode:
authorHanoh Haim <hhaim@cisco.com>2016-05-10 21:00:45 +0300
committerHanoh Haim <hhaim@cisco.com>2016-05-10 21:00:45 +0300
commit3a0c1c8333382ff8402b05ce47d17f100187df6f (patch)
tree1662f9a268241d1dd6faf3c7b3a8a008455e96b2 /src/utl_cpuu.cpp
parent2d37b9f98020a4458aaad1f3fd05ca5e408213e0 (diff)
cpu% without tsc
Diffstat (limited to 'src/utl_cpuu.cpp')
-rwxr-xr-xsrc/utl_cpuu.cpp28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/utl_cpuu.cpp b/src/utl_cpuu.cpp
index 0701b845..4d75cf6f 100755
--- a/src/utl_cpuu.cpp
+++ b/src/utl_cpuu.cpp
@@ -26,8 +26,8 @@ limitations under the License.
void CCpuUtlCp::Create(CCpuUtlDp * cdp){
m_dpcpu=cdp;
m_cpu_util=0.0;
- m_last_total_cycles=m_dpcpu->get_total_cycles();
- m_last_work_cycles =m_dpcpu->get_work_cycles();
+ m_ticks=0;
+ m_work=0;
}
void CCpuUtlCp::Delete(){
@@ -36,18 +36,18 @@ void CCpuUtlCp::Delete(){
void CCpuUtlCp::Update(){
- uint64_t t=m_dpcpu->get_total_cycles();
- uint64_t w=m_dpcpu->get_work_cycles();
- uint32_t acc_total_cycles = (uint32_t)(t - m_last_total_cycles);
- uint32_t acc_work_cycles = (uint32_t)(w - m_last_work_cycles);
-
- m_last_total_cycles = t ;
- m_last_work_cycles = w;
-
- double window_cpu_u = ((double)acc_work_cycles/(double)acc_total_cycles);
-
- /* LPF*/
- m_cpu_util = (m_cpu_util*0.75)+(window_cpu_u*0.25);
+ m_ticks++ ;
+ if ( m_dpcpu->sample_data() ) {
+ m_work++;
+ }
+ if (m_ticks==100) {
+ double window_cpu_u = ((double)m_work/(double)m_ticks);
+ /* LPF*/
+ m_cpu_util = (m_cpu_util*0.75)+(window_cpu_u*0.25);
+ m_ticks=0;
+ m_work=0;
+
+ }
}
/* return cpu % */