diff options
| author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-05-22 11:49:47 -0400 |
|---|---|---|
| committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-05-22 11:49:47 -0400 |
| commit | 4e94db6f1c0341c5e64f0f1487de63420fb7a163 (patch) | |
| tree | 573b43d84290554f38caaf36800af3a83e0a1325 /include | |
| parent | 05684bf81966b173b9387a06a72a36c8a047eba5 (diff) | |
record task type in feather trace time stamp
Diffstat (limited to 'include')
| -rw-r--r-- | include/litmus/trace.h | 56 |
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 | ||
| 12 | enum task_type_marker { | ||
| 13 | TSK_BE, | ||
| 14 | TSK_RT, | ||
| 15 | TSK_UNKNOWN | ||
| 16 | }; | ||
| 17 | |||
| 12 | struct timestamp { | 18 | struct 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 */ |
| 21 | extern struct ft_buffer* trace_ts_buf; | 28 | extern 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 | 31 | feather_callback void save_timestamp(unsigned long event); |
| 25 | */ | 32 | feather_callback void save_timestamp_def(unsigned long event, unsigned long type); |
| 26 | asmlinkage void save_timestamp(unsigned long event); | 33 | feather_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) |
