aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2010-11-08 15:02:09 -0500
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2010-11-11 17:57:42 -0500
commit34310fd7dbc3ad98d8e7cafa4f872ba71ca00860 (patch)
tree31ddcaa124430c37ccb5e2f4cb0a69c37ad885ba
parentc6182ba4a548baf0d1238d0df54e7d38ed299c3e (diff)
Split out TRACE() from litmus.h and cleanup some includes
The TRACE() functionality doesn't need all of litmus.h. Currently, it's impossible to use TRACE() in sched.h due to a circular dependency. This patch moves TRACE() and friends to litmus/sched_debug.h, which can be included in sched.h. While at it, also fix some minor include ugliness that was revealed by this change.
-rw-r--r--include/litmus/debug_trace.h37
-rw-r--r--include/litmus/litmus.h28
-rw-r--r--include/litmus/sched_trace.h9
-rw-r--r--litmus/budget.c1
-rw-r--r--litmus/litmus.c8
-rw-r--r--litmus/litmus_proc.c1
-rw-r--r--litmus/sched_plugin.c1
-rw-r--r--litmus/sched_psn_edf.c3
-rw-r--r--litmus/srp.c4
-rw-r--r--litmus/trace.c1
10 files changed, 47 insertions, 46 deletions
diff --git a/include/litmus/debug_trace.h b/include/litmus/debug_trace.h
new file mode 100644
index 000000000000..0f99be01d569
--- /dev/null
+++ b/include/litmus/debug_trace.h
@@ -0,0 +1,37 @@
1#ifndef LITMUS_DEBUG_TRACE_H
2#define LITMUS_DEBUG_TRACE_H
3
4#ifdef CONFIG_SCHED_DEBUG_TRACE
5void sched_trace_log_message(const char* fmt, ...);
6void dump_trace_buffer(int max);
7#else
8
9#define sched_trace_log_message(fmt, ...)
10
11#endif
12
13extern atomic_t __log_seq_no;
14
15#define TRACE(fmt, args...) \
16 sched_trace_log_message("%d P%d: " fmt, atomic_add_return(1, &__log_seq_no), \
17 raw_smp_processor_id(), ## args)
18
19#define TRACE_TASK(t, fmt, args...) \
20 TRACE("(%s/%d) " fmt, (t)->comm, (t)->pid, ##args)
21
22#define TRACE_CUR(fmt, args...) \
23 TRACE_TASK(current, fmt, ## args)
24
25#define TRACE_BUG_ON(cond) \
26 do { if (cond) TRACE("BUG_ON(%s) at %s:%d " \
27 "called from %p current=%s/%d state=%d " \
28 "flags=%x partition=%d cpu=%d rtflags=%d"\
29 " job=%u timeslice=%u\n", \
30 #cond, __FILE__, __LINE__, __builtin_return_address(0), current->comm, \
31 current->pid, current->state, current->flags, \
32 get_partition(current), smp_processor_id(), get_rt_flags(current), \
33 current->rt_param.job_params.job_no, \
34 current->rt.time_slice\
35 ); } while(0);
36
37#endif
diff --git a/include/litmus/litmus.h b/include/litmus/litmus.h
index 5d20276e44f4..30f41869b455 100644
--- a/include/litmus/litmus.h
+++ b/include/litmus/litmus.h
@@ -6,38 +6,12 @@
6#ifndef _LINUX_LITMUS_H_ 6#ifndef _LINUX_LITMUS_H_
7#define _LINUX_LITMUS_H_ 7#define _LINUX_LITMUS_H_
8 8
9#include <linux/jiffies.h> 9#include <litmus/debug_trace.h>
10#include <litmus/sched_trace.h>
11 10
12#ifdef CONFIG_RELEASE_MASTER 11#ifdef CONFIG_RELEASE_MASTER
13extern atomic_t release_master_cpu; 12extern atomic_t release_master_cpu;
14#endif 13#endif
15 14
16extern atomic_t __log_seq_no;
17
18#define TRACE(fmt, args...) \
19 sched_trace_log_message("%d P%d: " fmt, atomic_add_return(1, &__log_seq_no), \
20 raw_smp_processor_id(), ## args)
21
22#define TRACE_TASK(t, fmt, args...) \
23 TRACE("(%s/%d) " fmt, (t)->comm, (t)->pid, ##args)
24
25#define TRACE_CUR(fmt, args...) \
26 TRACE_TASK(current, fmt, ## args)
27
28#define TRACE_BUG_ON(cond) \
29 do { if (cond) TRACE("BUG_ON(%s) at %s:%d " \
30 "called from %p current=%s/%d state=%d " \
31 "flags=%x partition=%d cpu=%d rtflags=%d"\
32 " job=%u timeslice=%u\n", \
33 #cond, __FILE__, __LINE__, __builtin_return_address(0), current->comm, \
34 current->pid, current->state, current->flags, \
35 get_partition(current), smp_processor_id(), get_rt_flags(current), \
36 current->rt_param.job_params.job_no, \
37 current->rt.time_slice\
38 ); } while(0);
39
40
41/* in_list - is a given list_head queued on some list? 15/* in_list - is a given list_head queued on some list?
42 */ 16 */
43static inline int in_list(struct list_head* list) 17static inline int in_list(struct list_head* list)
diff --git a/include/litmus/sched_trace.h b/include/litmus/sched_trace.h
index e1b0c9712b5f..a5f73736f7e8 100644
--- a/include/litmus/sched_trace.h
+++ b/include/litmus/sched_trace.h
@@ -178,15 +178,6 @@ feather_callback void do_sched_trace_sys_release(unsigned long id,
178 178
179#define sched_trace_quantum_boundary() /* NOT IMPLEMENTED */ 179#define sched_trace_quantum_boundary() /* NOT IMPLEMENTED */
180 180
181#ifdef CONFIG_SCHED_DEBUG_TRACE
182void sched_trace_log_message(const char* fmt, ...);
183void dump_trace_buffer(int max);
184#else
185
186#define sched_trace_log_message(fmt, ...)
187
188#endif
189
190#endif /* __KERNEL__ */ 181#endif /* __KERNEL__ */
191 182
192#endif 183#endif
diff --git a/litmus/budget.c b/litmus/budget.c
index b99177a26313..f6f5ca81c9d6 100644
--- a/litmus/budget.c
+++ b/litmus/budget.c
@@ -1,3 +1,4 @@
1#include <linux/sched.h>
1#include <linux/percpu.h> 2#include <linux/percpu.h>
2#include <linux/hrtimer.h> 3#include <linux/hrtimer.h>
3 4
diff --git a/litmus/litmus.c b/litmus/litmus.c
index 99c35ac99870..0756d0156f8f 100644
--- a/litmus/litmus.c
+++ b/litmus/litmus.c
@@ -6,20 +6,16 @@
6#include <asm/uaccess.h> 6#include <asm/uaccess.h>
7#include <linux/uaccess.h> 7#include <linux/uaccess.h>
8#include <linux/sysrq.h> 8#include <linux/sysrq.h>
9 9#include <linux/sched.h>
10#include <linux/module.h> 10#include <linux/module.h>
11#include <linux/slab.h> 11#include <linux/slab.h>
12 12
13#include <litmus/litmus.h> 13#include <litmus/litmus.h>
14#include <linux/sched.h>
15
16#include <litmus/bheap.h> 14#include <litmus/bheap.h>
17
18#include <litmus/trace.h> 15#include <litmus/trace.h>
19
20#include <litmus/rt_domain.h> 16#include <litmus/rt_domain.h>
21
22#include <litmus/litmus_proc.h> 17#include <litmus/litmus_proc.h>
18#include <litmus/sched_trace.h>
23 19
24/* Number of RT tasks that exist in the system */ 20/* Number of RT tasks that exist in the system */
25atomic_t rt_task_count = ATOMIC_INIT(0); 21atomic_t rt_task_count = ATOMIC_INIT(0);
diff --git a/litmus/litmus_proc.c b/litmus/litmus_proc.c
index c10a6a6d3975..81ea5c35d291 100644
--- a/litmus/litmus_proc.c
+++ b/litmus/litmus_proc.c
@@ -2,6 +2,7 @@
2 * litmus_proc.c -- Implementation of the /proc/litmus directory tree. 2 * litmus_proc.c -- Implementation of the /proc/litmus directory tree.
3 */ 3 */
4 4
5#include <linux/sched.h>
5#include <linux/uaccess.h> 6#include <linux/uaccess.h>
6 7
7#include <litmus/litmus.h> 8#include <litmus/litmus.h>
diff --git a/litmus/sched_plugin.c b/litmus/sched_plugin.c
index d706a08fb313..ec04454a0cf9 100644
--- a/litmus/sched_plugin.c
+++ b/litmus/sched_plugin.c
@@ -6,6 +6,7 @@
6 6
7#include <linux/list.h> 7#include <linux/list.h>
8#include <linux/spinlock.h> 8#include <linux/spinlock.h>
9#include <linux/sched.h>
9 10
10#include <litmus/litmus.h> 11#include <litmus/litmus.h>
11#include <litmus/sched_plugin.h> 12#include <litmus/sched_plugin.h>
diff --git a/litmus/sched_psn_edf.c b/litmus/sched_psn_edf.c
index 73f64730bd5e..aa567f2b91b9 100644
--- a/litmus/sched_psn_edf.c
+++ b/litmus/sched_psn_edf.c
@@ -12,14 +12,13 @@
12#include <linux/sched.h> 12#include <linux/sched.h>
13#include <linux/list.h> 13#include <linux/list.h>
14#include <linux/spinlock.h> 14#include <linux/spinlock.h>
15
16#include <linux/module.h> 15#include <linux/module.h>
17 16
18#include <litmus/litmus.h> 17#include <litmus/litmus.h>
19#include <litmus/jobs.h> 18#include <litmus/jobs.h>
20#include <litmus/sched_plugin.h> 19#include <litmus/sched_plugin.h>
21#include <litmus/edf_common.h> 20#include <litmus/edf_common.h>
22 21#include <litmus/sched_trace.h>
23 22
24typedef struct { 23typedef struct {
25 rt_domain_t domain; 24 rt_domain_t domain;
diff --git a/litmus/srp.c b/litmus/srp.c
index 71639b991630..cb577598ce3e 100644
--- a/litmus/srp.c
+++ b/litmus/srp.c
@@ -3,12 +3,12 @@
3/* ************************************************************************** */ 3/* ************************************************************************** */
4 4
5#include <asm/atomic.h> 5#include <asm/atomic.h>
6#include <linux/sched.h>
6#include <linux/wait.h> 7#include <linux/wait.h>
8
7#include <litmus/litmus.h> 9#include <litmus/litmus.h>
8#include <litmus/sched_plugin.h> 10#include <litmus/sched_plugin.h>
9
10#include <litmus/fdso.h> 11#include <litmus/fdso.h>
11
12#include <litmus/trace.h> 12#include <litmus/trace.h>
13 13
14 14
diff --git a/litmus/trace.c b/litmus/trace.c
index 440376998dc9..b3a6b47aad6e 100644
--- a/litmus/trace.c
+++ b/litmus/trace.c
@@ -1,3 +1,4 @@
1#include <linux/sched.h>
1#include <linux/module.h> 2#include <linux/module.h>
2 3
3#include <litmus/ftdev.h> 4#include <litmus/ftdev.h>