clock: refactor API for most common use cases 86/184386/3
authorLukasz Stanislawski <l.stanislaws@samsung.com>
Tue, 17 Jul 2018 12:04:41 +0000 (14:04 +0200)
committerLukasz Stanislawski <l.stanislaws@samsung.com>
Tue, 17 Jul 2018 14:36:57 +0000 (16:36 +0200)
Change-Id: I36e38d424d25443561db10b0b7d28698677a6ca8

src/clock.c
src/clock.h
src/report-generator.c
src/stats.c
src/stats.h

index 034573b..fa1e6bc 100644 (file)
@@ -19,7 +19,7 @@
 #include "clock.h"
 #include "log.h"
 
-struct timespec clock_monotonic_get()
+float clock_monotonic_get()
 {
        struct timespec ret = {0,};
 
@@ -28,10 +28,10 @@ struct timespec clock_monotonic_get()
                abort();
        }
 
-       return ret;
+       return ret.tv_sec + (float)ret.tv_nsec / 1000000000.0f;
 }
 
-struct timespec clock_realtime_get()
+time_t clock_realtime_get()
 {
        struct timespec ret = {0,};
 
@@ -40,7 +40,7 @@ struct timespec clock_realtime_get()
                abort();
        }
 
-       return ret;
+       return ret.tv_sec;
 }
 
 bool clock_is_supported()
index cdca73b..7dec10b 100644 (file)
@@ -21,7 +21,7 @@
 #include <stdbool.h>
 
 /**
- * @brief Check if platform supports required clock types
+ * @brief Check if platform supports all required clock types
  *
  * @return true if supported, false otherwise.
  */
@@ -33,8 +33,10 @@ bool clock_is_supported();
  * @note the func will abort if monotonic clock is not supported.
  * call @clock_is_supported beforehead to validate if platform
  * supports all clock types.
+ *
+ * @return: seconds since unspecified time point.
  */
-struct timespec clock_monotonic_get();
+float clock_monotonic_get();
 
 /**
  * @brief Gets current time using realtime clock
@@ -43,7 +45,8 @@ struct timespec clock_monotonic_get();
  * call @clock_is_supported beforehead to validate if platform
  * supports all clock types.
  *
+ * @return: number of seconds since Epoch
  */
-struct timespec clock_realtime_get();
+time_t clock_realtime_get();
 
 #endif
index f8060fb..8fbcd23 100644 (file)
@@ -171,7 +171,7 @@ int report_generator_generate_system_cpu_usage_report(
        }
 
        report->usage = usage;
-       report->time = clock_realtime_get().tv_sec;
+       report->time = clock_realtime_get();
 
        generator->previous = current;
 
@@ -196,7 +196,7 @@ int report_generator_generate_system_memory_usage_report(
                return -1;
        }
 
-       report->time = clock_realtime_get().tv_sec;
+       report->time = clock_realtime_get();
        report->usage = usage;
 
        return 0;
@@ -233,7 +233,7 @@ int report_generator_generate_process_cpu_usage_report(
                return -1;
        }
 
-       report->time = clock_realtime_get().tv_sec;
+       report->time = clock_realtime_get();
        report->pid = generator->pid;
        report->usage = usage;
 
@@ -256,7 +256,7 @@ int report_generator_generate_process_memory_usage_report(
                return -1;
        }
 
-       report->time = clock_realtime_get().tv_sec;
+       report->time = clock_realtime_get();
        report->usage = usage;
 
        return 0;
@@ -340,7 +340,7 @@ int report_generator_generate_load_average_report(struct system_load_average_rep
                return -1;
        }
 
-       report->time = clock_realtime_get().tv_sec;
+       report->time = clock_realtime_get();
        report->one_min_avg = a1;
        report->five_min_avg = a5;
        report->fifteen_min_avg = a15;
@@ -402,7 +402,7 @@ static bool _append_to_mem_report(struct process *proc, void *data)
        appid = process_get_appid(proc);
        if (appid) strncpy(report.app_id, appid, sizeof(report.app_id));
        report.pid = process_get_pid(proc);
-       report.time = clock_realtime_get().tv_sec;
+       report.time = clock_realtime_get();
        closure->usage_report[closure->current_index++] = report;
 
        return true;
@@ -421,13 +421,13 @@ static bool _append_to_cpu_report(struct process *proc, void *data)
        if (process_get_cpu_usage(proc, &ticks) != 0) {
                report.usage = NAN;
        } else {
-               report.usage = stats_get_cpu_usage_percentage(ticks, closure->sys_stats.frame_time);
+               report.usage = stats_get_cpu_usage_percentage(ticks, closure->sys_stats.frame_time_inverted);
        }
 
        appid = process_get_appid(proc);
        if (appid) strncpy(report.app_id, appid, sizeof(report.app_id));
        report.pid = process_get_pid(proc);
-       report.time = clock_realtime_get().tv_sec;
+       report.time = clock_realtime_get();
        closure->usage_report[closure->current_index++] = report;
 
        return true;
index 073be51..ef22b1b 100644 (file)
@@ -62,8 +62,8 @@ int stats_update_system_stats(struct stats_system *sys)
        sys->memory_used = mem_info.used;
        sys->total_memory = mem_info.total;
 
-       struct timespec now = clock_monotonic_get();
-       sys->frame_time = 1.0f / (now.tv_sec - sys->update_time.tv_sec + ((float)now.tv_nsec - sys->update_time.tv_nsec) / 1000000000.0f);
+       float now = clock_monotonic_get();
+       sys->frame_time_inverted = 1.0f / (now - sys->update_time);
        sys->update_time = now;
 
        return 0;
index cb417f9..5ee9956 100644 (file)
@@ -28,8 +28,8 @@ struct stats_system
        unsigned long long total_ticks;
        unsigned long long memory_used;
        unsigned long long total_memory;
-       struct timespec update_time;
-       float frame_time;
+       float update_time;
+       float frame_time_inverted;
 };
 
 /**