aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2009-04-29 11:46:42 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2009-04-29 11:46:42 -0400
commitf60873de7c15d578974566bd052280666c759864 (patch)
tree48f0b4ed121a4a23715bfdf2c5032c654e9103e7
parent715800e7610887ce87b5b6af61f9bddfdc29d97d (diff)
add sporadic_task_ns() helper
Allows for higher-precision setup of real-time tasks.
-rw-r--r--include/litmus.h6
-rw-r--r--src/litmus.c11
2 files changed, 14 insertions, 3 deletions
diff --git a/include/litmus.h b/include/litmus.h
index c578009..22376a4 100644
--- a/include/litmus.h
+++ b/include/litmus.h
@@ -18,10 +18,14 @@ int set_rt_task_param(pid_t pid, struct rt_task* param);
18int get_rt_task_param(pid_t pid, struct rt_task* param); 18int get_rt_task_param(pid_t pid, struct rt_task* param);
19 19
20/* setup helper */ 20/* setup helper */
21/* times are givin in ms */ 21/* times are given in ms */
22int sporadic_task(lt_t e, lt_t p, lt_t phase, 22int sporadic_task(lt_t e, lt_t p, lt_t phase,
23 int partition, task_class_t cls, int set_cpu_set); 23 int partition, task_class_t cls, int set_cpu_set);
24 24
25/* times are given in ns */
26int sporadic_task_ns(lt_t e, lt_t p, lt_t phase,
27 int cpu, task_class_t cls, int set_cpu_set);
28
25#define sporadic_global(e, p) \ 29#define sporadic_global(e, p) \
26 sporadic_task(e, p, 0, 0, RT_CLASS_SOFT, 0) 30 sporadic_task(e, p, 0, 0, RT_CLASS_SOFT, 0)
27#define sporadic_partitioned(e, p, cpu) \ 31#define sporadic_partitioned(e, p, cpu) \
diff --git a/src/litmus.c b/src/litmus.c
index 8f03f4c..5f98b97 100644
--- a/src/litmus.c
+++ b/src/litmus.c
@@ -44,10 +44,17 @@ int be_migrate_to(int target_cpu)
44int sporadic_task(lt_t e, lt_t p, lt_t phase, 44int sporadic_task(lt_t e, lt_t p, lt_t phase,
45 int cpu, task_class_t cls, int set_cpu_set) 45 int cpu, task_class_t cls, int set_cpu_set)
46{ 46{
47 return sporadic_task_ns(e * NS_PER_MS, p * NS_PER_MS, phase * NS_PER_MS,
48 cpu, cls, set_cpu_set);
49}
50
51int sporadic_task_ns(lt_t e, lt_t p, lt_t phase,
52 int cpu, task_class_t cls, int set_cpu_set)
53{
47 struct rt_task param; 54 struct rt_task param;
48 int ret; 55 int ret;
49 param.exec_cost = e * NS_PER_MS; 56 param.exec_cost = e;
50 param.period = p * NS_PER_MS; 57 param.period = p;
51 param.cpu = cpu; 58 param.cpu = cpu;
52 param.cls = cls; 59 param.cls = cls;
53 param.phase = phase; 60 param.phase = phase;