From 8b52a31ed2c299b759f330c4f976b9c70f5765f4 Mon Sep 17 00:00:00 2001 From: Hanoh Haim Date: Wed, 24 Jun 2015 14:03:29 +0300 Subject: first version --- src/utl_cpuu.h | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100755 src/utl_cpuu.h (limited to 'src/utl_cpuu.h') diff --git a/src/utl_cpuu.h b/src/utl_cpuu.h new file mode 100755 index 00000000..e7bb50bb --- /dev/null +++ b/src/utl_cpuu.h @@ -0,0 +1,76 @@ +#ifndef UTL_CPUU_H +#define UTL_CPUU_H +/* + Hanoh Haim + Cisco Systems, Inc. +*/ + +/* +Copyright (c) 2015-2015 Cisco Systems, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +#include +#include "os_time.h" +#include "mbuf.h" + +class CCpuUtlDp { + +public: + CCpuUtlDp(){ + m_total_cycles=0; + m_data=0; + } + inline void start_work(){ + m_data=os_get_hr_tick_64(); + } + inline void revert(){ + } + inline void commit(){ + m_total_cycles+=(os_get_hr_tick_64()-m_data); + } + inline uint64_t get_total_cycles(void){ + return ( os_get_hr_tick_64()); + } + + inline uint64_t get_work_cycles(void){ + return ( m_total_cycles ); + } + +private: + uint64_t m_total_cycles; + uint64_t m_data; + +} __rte_cache_aligned; + +class CCpuUtlCp { +public: + void Create(CCpuUtlDp * cdp); + void Delete(); + /* should be called each 1 sec */ + void Update(); + /* return cpu % */ + double GetVal(); + +private: + CCpuUtlDp * m_dpcpu; + double m_cpu_util; + uint64_t m_last_total_cycles; + uint64_t m_last_work_cycles; + + + // add filter +}; + +#endif -- cgit 1.2.3-korg