mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
Merge pull request #334 from LudwigOrtmann/scheduler_clean_fix
scheduler: use proper inttype for runtime, use import instead of declaration, rename to runtime_ticks
This commit is contained in:
commit
67d975a9aa
@ -90,7 +90,7 @@ typedef struct {
|
||||
unsigned int laststart; /*< Time stamp of the last time this thread was
|
||||
scheduled to run */
|
||||
unsigned int schedules; /*< How often the thread was scheduled to run */
|
||||
unsigned int runtime; /*< The total runtime of this thread */
|
||||
unsigned long runtime_ticks; /*< The total runtime of this thread in ticks */
|
||||
} schedstat;
|
||||
|
||||
/**
|
||||
|
16
core/sched.c
16
core/sched.c
@ -7,6 +7,8 @@
|
||||
* Public License. See the file LICENSE in the top level directory for more
|
||||
* details.
|
||||
*
|
||||
* TODO: setup dependency from SCHEDSTATISTICS to MODULE_HWTIMER
|
||||
*
|
||||
* @ingroup kernel
|
||||
* @{
|
||||
* @file
|
||||
@ -21,6 +23,10 @@
|
||||
#include <clist.h>
|
||||
#include <bitarithm.h>
|
||||
|
||||
#if SCHEDSTATISTICS
|
||||
#include "hwtimer.h"
|
||||
#endif
|
||||
|
||||
#define ENABLE_DEBUG (0)
|
||||
#include <debug.h>
|
||||
|
||||
@ -51,7 +57,7 @@ void sched_init()
|
||||
sched_threads[i] = NULL;
|
||||
#if SCHEDSTATISTICS
|
||||
pidlist[i].laststart = 0;
|
||||
pidlist[i].runtime = 0;
|
||||
pidlist[i].runtime_ticks = 0;
|
||||
pidlist[i].schedules = 0;
|
||||
#endif
|
||||
}
|
||||
@ -87,13 +93,11 @@ void sched_run()
|
||||
|
||||
}
|
||||
|
||||
#if SCHEDSTATISTICS
|
||||
/* TODO: setup dependency from SCHEDSTATISTICS to MODULE_HWTIMER */
|
||||
extern unsigned long hwtimer_now(void);
|
||||
unsigned int time = hwtimer_now();
|
||||
#ifdef SCHEDSTATISTICS
|
||||
unsigned long time = hwtimer_now();
|
||||
|
||||
if (my_active_thread && (pidlist[my_active_thread->pid].laststart)) {
|
||||
pidlist[my_active_thread->pid].runtime += time - pidlist[my_active_thread->pid].laststart;
|
||||
pidlist[my_active_thread->pid].runtime_ticks += time - pidlist[my_active_thread->pid].laststart;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -54,16 +54,16 @@ void thread_print_all(void)
|
||||
const char *sname = state_names[statebit]; // get state name
|
||||
const char *queued = queued_name + (state & BIT0); // get queued flag
|
||||
int stacksz = p->stack_size; // get max used stack
|
||||
double runtime = 0 / 0.0;
|
||||
double runtime_ticks = 0 / 0.0;
|
||||
int switches = -1;
|
||||
#if SCHEDSTATISTICS
|
||||
runtime = pidlist[i].runtime / (double) hwtimer_now() * 100;
|
||||
runtime_ticks = pidlist[i].runtime_ticks / (double) hwtimer_now() * 100;
|
||||
switches = pidlist[i].schedules;
|
||||
#endif
|
||||
overall_stacksz += stacksz;
|
||||
stacksz -= thread_measure_stack_usage(p->stack_start);
|
||||
printf("\t%3u | %-21s| %-8s %.1s | %3i | %5i (%5i) %p | %6.3f%% | ",
|
||||
p->pid, p->name, sname, queued, p->priority, p->stack_size, stacksz, p->stack_start, runtime);
|
||||
p->pid, p->name, sname, queued, p->priority, p->stack_size, stacksz, p->stack_start, runtime_ticks);
|
||||
printf(" %8u\n", switches);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user