diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-01-14 14:20:07 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-01-14 14:20:07 -0500 |
commit | 53a6dbb9f5337e77fce9c2672488c1c5e0621beb (patch) | |
tree | 83ffcf95fe422c592187ab17be7d25e374e19718 /include | |
parent | 5d7dcfa10ea0dd283773a301e3ce610a7797d582 (diff) |
Completed PAI for C-EDF.
Diffstat (limited to 'include')
-rw-r--r-- | include/litmus/sched_plugin.h | 2 | ||||
-rw-r--r-- | include/litmus/sched_trace_external.h | 20 |
2 files changed, 22 insertions, 0 deletions
diff --git a/include/litmus/sched_plugin.h b/include/litmus/sched_plugin.h index 12a9ab65a673..3fc64f832fef 100644 --- a/include/litmus/sched_plugin.h +++ b/include/litmus/sched_plugin.h | |||
@@ -75,6 +75,7 @@ typedef void (*clear_prio_inh_klitirqd_t)(struct task_struct* klitirqd, | |||
75 | 75 | ||
76 | 76 | ||
77 | typedef int (*enqueue_pai_tasklet_t)(struct tasklet_struct* tasklet); | 77 | typedef int (*enqueue_pai_tasklet_t)(struct tasklet_struct* tasklet); |
78 | typedef void (*run_tasklets_t)(struct task_struct* next); | ||
78 | 79 | ||
79 | /********************* sys call backends ********************/ | 80 | /********************* sys call backends ********************/ |
80 | /* This function causes the caller to sleep until the next release */ | 81 | /* This function causes the caller to sleep until the next release */ |
@@ -125,6 +126,7 @@ struct sched_plugin { | |||
125 | 126 | ||
126 | #ifdef CONFIG_LITMUS_PAI_SOFTIRQD | 127 | #ifdef CONFIG_LITMUS_PAI_SOFTIRQD |
127 | enqueue_pai_tasklet_t enqueue_pai_tasklet; | 128 | enqueue_pai_tasklet_t enqueue_pai_tasklet; |
129 | run_tasklets_t run_tasklets; | ||
128 | #endif | 130 | #endif |
129 | } __attribute__ ((__aligned__(SMP_CACHE_BYTES))); | 131 | } __attribute__ ((__aligned__(SMP_CACHE_BYTES))); |
130 | 132 | ||
diff --git a/include/litmus/sched_trace_external.h b/include/litmus/sched_trace_external.h index 90424d5c564c..e70e45e4cf51 100644 --- a/include/litmus/sched_trace_external.h +++ b/include/litmus/sched_trace_external.h | |||
@@ -4,6 +4,8 @@ | |||
4 | #ifndef _LINUX_SCHED_TRACE_EXTERNAL_H_ | 4 | #ifndef _LINUX_SCHED_TRACE_EXTERNAL_H_ |
5 | #define _LINUX_SCHED_TRACE_EXTERNAL_H_ | 5 | #define _LINUX_SCHED_TRACE_EXTERNAL_H_ |
6 | 6 | ||
7 | |||
8 | #ifdef CONFIG_SCHED_TASK_TRACE | ||
7 | extern void __sched_trace_tasklet_begin_external(struct task_struct* t); | 9 | extern void __sched_trace_tasklet_begin_external(struct task_struct* t); |
8 | static inline void sched_trace_tasklet_begin_external(struct task_struct* t) | 10 | static inline void sched_trace_tasklet_begin_external(struct task_struct* t) |
9 | { | 11 | { |
@@ -28,6 +30,7 @@ static inline void sched_trace_work_end_external(struct task_struct* t, struct t | |||
28 | __sched_trace_work_end_external(t, e, f); | 30 | __sched_trace_work_end_external(t, e, f); |
29 | } | 31 | } |
30 | 32 | ||
33 | #ifdef CONFIG_LITMUS_NVIDIA | ||
31 | extern void __sched_trace_nv_interrupt_begin_external(u32 device); | 34 | extern void __sched_trace_nv_interrupt_begin_external(u32 device); |
32 | static inline void sched_trace_nv_interrupt_begin_external(u32 device) | 35 | static inline void sched_trace_nv_interrupt_begin_external(u32 device) |
33 | { | 36 | { |
@@ -39,6 +42,23 @@ static inline void sched_trace_nv_interrupt_end_external(u32 device) | |||
39 | { | 42 | { |
40 | __sched_trace_nv_interrupt_end_external(device); | 43 | __sched_trace_nv_interrupt_end_external(device); |
41 | } | 44 | } |
45 | #endif | ||
46 | |||
47 | #else | ||
48 | |||
49 | // no tracing. | ||
50 | static inline void sched_trace_tasklet_begin_external(struct task_struct* t){} | ||
51 | static inline void sched_trace_tasklet_end_external(struct task_struct* t, unsigned long flushed){} | ||
52 | static inline void sched_trace_work_begin_external(struct task_struct* t, struct task_struct* e){} | ||
53 | static inline void sched_trace_work_end_external(struct task_struct* t, struct task_struct* e, unsigned long f){} | ||
54 | |||
55 | #ifdef CONFIG_LITMUS_NVIDIA | ||
56 | static inline void sched_trace_nv_interrupt_begin_external(u32 device){} | ||
57 | static inline void sched_trace_nv_interrupt_end_external(u32 device){} | ||
58 | #endif | ||
59 | |||
60 | #endif | ||
61 | |||
42 | 62 | ||
43 | #ifdef CONFIG_LITMUS_NVIDIA | 63 | #ifdef CONFIG_LITMUS_NVIDIA |
44 | 64 | ||