aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2008-05-22 11:49:47 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2008-05-22 11:49:47 -0400
commit4e94db6f1c0341c5e64f0f1487de63420fb7a163 (patch)
tree573b43d84290554f38caaf36800af3a83e0a1325 /include
parent05684bf81966b173b9387a06a72a36c8a047eba5 (diff)
record task type in feather trace time stamp
Diffstat (limited to 'include')
-rw-r--r--include/litmus/trace.h56
1 files changed, 35 insertions, 21 deletions
diff --git a/include/litmus/trace.h b/include/litmus/trace.h
index ad7a782a97..ff670c5a15 100644
--- a/include/litmus/trace.h
+++ b/include/litmus/trace.h
@@ -9,28 +9,42 @@
9 9
10/*********************** TIMESTAMPS ************************/ 10/*********************** TIMESTAMPS ************************/
11 11
12enum task_type_marker {
13 TSK_BE,
14 TSK_RT,
15 TSK_UNKNOWN
16};
17
12struct timestamp { 18struct timestamp {
13 uint64_t timestamp; 19 uint64_t timestamp;
14 uint32_t seq_no; 20 uint32_t seq_no;
15 uint16_t cpu; 21 uint8_t cpu;
16 uint16_t event; 22 uint8_t event;
23 uint8_t task_type;
17}; 24};
18 25
19 26
20/* buffer holding time stamps - will be provided by driver */ 27/* buffer holding time stamps - will be provided by driver */
21extern struct ft_buffer* trace_ts_buf; 28extern struct ft_buffer* trace_ts_buf;
22 29
23/* save_timestamp: stores current time as struct timestamp 30/* tracing callbacks */
24 * in trace_ts_buf 31feather_callback void save_timestamp(unsigned long event);
25 */ 32feather_callback void save_timestamp_def(unsigned long event, unsigned long type);
26asmlinkage void save_timestamp(unsigned long event); 33feather_callback void save_timestamp_task(unsigned long event, unsigned long t_ptr);
27 34
28#define TIMESTAMP(id) ft_event0(id, save_timestamp) 35#define TIMESTAMP(id) ft_event0(id, save_timestamp)
29 36
37#define DTIMESTAMP(id, def) ft_event1(id, save_timestamp_def, def)
38
39#define TTIMESTAMP(id, task) ft_event1(id, save_timestamp_task, task)
30 40
31#else /* !CONFIG_FEATHER_TRACE */ 41#else /* !CONFIG_FEATHER_TRACE */
32 42
33#define TIMESTAMP(id) /* no tracing */ 43#define TIMESTAMP(id) /* no tracing */
44
45#define DTIMESTAMP(id, def) /* no tracing */
46
47#define TTIMESTAMP(id, task) /* no tracing */
34 48
35#endif 49#endif
36 50
@@ -43,26 +57,26 @@ asmlinkage void save_timestamp(unsigned long event);
43 * always the next number after the start time event id. 57 * always the next number after the start time event id.
44 */ 58 */
45 59
46#define TS_SCHED_START TIMESTAMP(100) 60#define TS_SCHED_START(t) TTIMESTAMP(100, t)
47#define TS_SCHED_END TIMESTAMP(101) 61#define TS_SCHED_END(t) TTIMESTAMP(101, t)
48#define TS_SCHED2_START TIMESTAMP(102) 62#define TS_SCHED2_START(t) TTIMESTAMP(102, t)
49#define TS_SCHED2_END TIMESTAMP(103) 63#define TS_SCHED2_END(t) TTIMESTAMP(103, t)
50 64
51#define TS_CXS_START TIMESTAMP(104) 65#define TS_CXS_START(t) TTIMESTAMP(104, t)
52#define TS_CXS_END TIMESTAMP(105) 66#define TS_CXS_END(t) TTIMESTAMP(105, t)
53 67
54#define TS_RELEASE_START TIMESTAMP(106) 68#define TS_RELEASE_START DTIMESTAMP(106, TSK_RT)
55#define TS_RELEASE_END TIMESTAMP(107) 69#define TS_RELEASE_END DTIMESTAMP(107, TSK_RT)
56 70
57#define TS_TICK_START TIMESTAMP(110) 71#define TS_TICK_START(t) TTIMESTAMP(110, t)
58#define TS_TICK_END TIMESTAMP(111) 72#define TS_TICK_END(t) TTIMESTAMP(111, t)
59 73
60 74
61#define TS_PLUGIN_SCHED_START TIMESTAMP(120) 75#define TS_PLUGIN_SCHED_START /* TIMESTAMP(120) */ /* currently unused */
62#define TS_PLUGIN_SCHED_END TIMESTAMP(121) 76#define TS_PLUGIN_SCHED_END /* TIMESTAMP(121) */
63 77
64#define TS_PLUGIN_TICK_START TIMESTAMP(130) 78#define TS_PLUGIN_TICK_START /* TIMESTAMP(130) */
65#define TS_PLUGIN_TICK_END TIMESTAMP(131) 79#define TS_PLUGIN_TICK_END /* TIMESTAMP(131) */
66 80
67#define TS_ENTER_NP_START TIMESTAMP(140) 81#define TS_ENTER_NP_START TIMESTAMP(140)
68#define TS_ENTER_NP_END TIMESTAMP(141) 82#define TS_ENTER_NP_END TIMESTAMP(141)