summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuri Lelli <juri.lelli@arm.com>2015-05-27 10:58:07 +0100
committerJuri Lelli <juri.lelli@arm.com>2016-11-25 08:21:17 +0000
commit2d553088c89ccb8cb13d3e9c0d6c78e40e598269 (patch)
tree8095d8d483814edcd80c39af8ac62d1d41841341
parent6026f2deadaa913b91d78a30fe41aa7ae20bd222 (diff)
rt-app: add 'configured period' to log metrics
It is handy to have the configured period directly in logs. Add it there. Signed-off-by: Juri Lelli <juri.lelli@arm.com> Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
-rw-r--r--src/rt-app.c22
-rw-r--r--src/rt-app_types.h1
-rw-r--r--src/rt-app_utils.c5
3 files changed, 18 insertions, 10 deletions
diff --git a/src/rt-app.c b/src/rt-app.c
index 76a1f68..f7c6919 100644
--- a/src/rt-app.c
+++ b/src/rt-app.c
@@ -238,7 +238,8 @@ static void memload(unsigned long count, struct _rtapp_iomem_buf *iomem)
static int run_event(event_data_t *event, int dry_run,
unsigned long *perf, unsigned long *duration, rtapp_resource_t *resources,
- struct timespec *t_first, unsigned long *wu_latency, long *slack)
+ struct timespec *t_first, unsigned long *wu_latency, long *slack,
+ unsigned long *c_period)
{
rtapp_resource_t *rdata = &(resources[event->res]);
rtapp_resource_t *ddata = &(resources[event->dep]);
@@ -321,6 +322,7 @@ static int run_event(event_data_t *event, int dry_run,
log_debug("timer %d ", event->duration);
t_period = usec_to_timespec(event->duration);
+ *c_period += event->duration;
if (rdata->res.timer.init == 0) {
rdata->res.timer.init = 1;
@@ -379,7 +381,8 @@ int run(int ind, phase_data_t *pdata, unsigned long *duration,
rtapp_resource_t *resources,
struct timespec *t_first,
unsigned long *wu_latency,
- long *slack)
+ long *slack,
+ unsigned long *c_period)
{
event_data_t *events = pdata->events;
int nbevents = pdata->nbevents;
@@ -397,7 +400,8 @@ int run(int ind, phase_data_t *pdata, unsigned long *duration,
"[%d] executing %d",
ind, i);
lock += run_event(&events[i], !continue_running, &perf,
- duration, resources, t_first, wu_latency, slack);
+ duration, resources, t_first, wu_latency, slack,
+ c_period);
}
return perf;
@@ -445,7 +449,7 @@ void *thread_body(void *arg)
struct sched_param param;
struct timespec t_start, t_end, t_first;
unsigned long t_start_usec;
- unsigned long perf, duration, wu_latency;
+ unsigned long perf, duration, wu_latency, c_period;
long slack;
timing_point_t *curr_timing;
timing_point_t *timings;
@@ -586,9 +590,10 @@ void *thread_body(void *arg)
log_notice("[%d] starting thread ...\n", data->ind);
- fprintf(data->log_handler, "%s %8s %8s %8s %15s %15s %15s %10s %10s\n",
+ fprintf(data->log_handler, "%s %8s %8s %8s %15s %15s %15s %10s %10s %8s\n",
"#idx", "perf", "run", "period",
- "start", "end", "rel_st", "wu_lat", "slack");
+ "start", "end", "rel_st", "wu_lat", "slack",
+ "c_prd");
if (opts.ftrace)
log_ftrace(ft_data.marker_fd, "[%d] starts", data->ind);
@@ -619,10 +624,10 @@ void *thread_body(void *arg)
log_ftrace(ft_data.marker_fd, "[%d] begins loop %d phase %d step %d", data->ind, i, j, loop);
log_debug("[%d] begins loop %d phase %d step %d", data->ind, i, j, loop);;
- duration = wu_latency = slack = 0;
+ duration = wu_latency = slack = c_period = 0;
clock_gettime(CLOCK_MONOTONIC, &t_start);
perf = run(data->ind, pdata, &duration, *(data->resources),
- &t_first, &wu_latency, &slack);
+ &t_first, &wu_latency, &slack, &c_period);
clock_gettime(CLOCK_MONOTONIC, &t_end);
if (timings)
@@ -642,6 +647,7 @@ void *thread_body(void *arg)
curr_timing->perf = perf;
curr_timing->wu_latency = wu_latency;
curr_timing->slack = slack;
+ curr_timing->c_period = c_period;
if (opts.logsize && !timings)
log_timing(data->log_handler, curr_timing);
diff --git a/src/rt-app_types.h b/src/rt-app_types.h
index 0570e7b..0ec8781 100644
--- a/src/rt-app_types.h
+++ b/src/rt-app_types.h
@@ -191,6 +191,7 @@ typedef struct _timing_point_t {
unsigned long perf;
unsigned long duration;
unsigned long period;
+ unsigned long c_period;
unsigned long wu_latency;
long slack;
__u64 start_time;
diff --git a/src/rt-app_utils.c b/src/rt-app_utils.c
index a1a7c05..e7cd8a8 100644
--- a/src/rt-app_utils.c
+++ b/src/rt-app_utils.c
@@ -140,7 +140,7 @@ void
log_timing(FILE *handler, timing_point_t *t)
{
fprintf(handler,
- "%4d %8lu %8lu %8lu %15llu %15llu %15llu %10lu %10ld",
+ "%4d %8lu %8lu %8lu %15llu %15llu %15llu %10lu %10ld %8lu",
t->ind,
t->perf,
t->duration,
@@ -149,7 +149,8 @@ log_timing(FILE *handler, timing_point_t *t)
t->end_time,
t->rel_start_time,
t->wu_latency,
- t->slack
+ t->slack,
+ t->c_period
);
fprintf(handler, "\n");
}