aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-01-14 14:20:07 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-01-14 14:20:07 -0500
commit53a6dbb9f5337e77fce9c2672488c1c5e0621beb (patch)
tree83ffcf95fe422c592187ab17be7d25e374e19718 /include
parent5d7dcfa10ea0dd283773a301e3ce610a7797d582 (diff)
Completed PAI for C-EDF.
Diffstat (limited to 'include')
-rw-r--r--include/litmus/sched_plugin.h2
-rw-r--r--include/litmus/sched_trace_external.h20
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
77typedef int (*enqueue_pai_tasklet_t)(struct tasklet_struct* tasklet); 77typedef int (*enqueue_pai_tasklet_t)(struct tasklet_struct* tasklet);
78typedef 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
7extern void __sched_trace_tasklet_begin_external(struct task_struct* t); 9extern void __sched_trace_tasklet_begin_external(struct task_struct* t);
8static inline void sched_trace_tasklet_begin_external(struct task_struct* t) 10static 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
31extern void __sched_trace_nv_interrupt_begin_external(u32 device); 34extern void __sched_trace_nv_interrupt_begin_external(u32 device);
32static inline void sched_trace_nv_interrupt_begin_external(u32 device) 35static 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.
50static inline void sched_trace_tasklet_begin_external(struct task_struct* t){}
51static inline void sched_trace_tasklet_end_external(struct task_struct* t, unsigned long flushed){}
52static inline void sched_trace_work_begin_external(struct task_struct* t, struct task_struct* e){}
53static inline void sched_trace_work_end_external(struct task_struct* t, struct task_struct* e, unsigned long f){}
54
55#ifdef CONFIG_LITMUS_NVIDIA
56static inline void sched_trace_nv_interrupt_begin_external(u32 device){}
57static 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