diff options
author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2012-09-04 08:39:09 -0400 |
---|---|---|
committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2012-10-18 16:14:05 -0400 |
commit | a481c27ddd7d324a9f311ae9a08228499dbb7f7b (patch) | |
tree | 09e380e77ba71a44d3a5c2d9c5144e90d005a439 /include | |
parent | a13904d4b6d04278deb6841020dd7dee9867745e (diff) |
Feather-Trace: hide irq in SEND_RESCHED_END
SEND_RESCHED_END is necessarily preceded by an interrupt. We don't
want to filter events based on this expected interrupts, but we still
want to detect samples disturbed by other interrupts. Hence, subtract
one off the interrupt count.
Diffstat (limited to 'include')
-rw-r--r-- | include/litmus/trace.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/litmus/trace.h b/include/litmus/trace.h index 635dd8986bd4..8ad4966c602e 100644 --- a/include/litmus/trace.h +++ b/include/litmus/trace.h | |||
@@ -35,6 +35,7 @@ feather_callback void save_timestamp_cpu(unsigned long event, unsigned long cpu) | |||
35 | feather_callback void save_task_latency(unsigned long event, unsigned long when_ptr); | 35 | feather_callback void save_task_latency(unsigned long event, unsigned long when_ptr); |
36 | feather_callback void save_timestamp_time(unsigned long event, unsigned long time_ptr); | 36 | feather_callback void save_timestamp_time(unsigned long event, unsigned long time_ptr); |
37 | feather_callback void save_timestamp_irq(unsigned long event, unsigned long irq_count_ptr); | 37 | feather_callback void save_timestamp_irq(unsigned long event, unsigned long irq_count_ptr); |
38 | feather_callback void save_timestamp_hide_irq(unsigned long event); | ||
38 | 39 | ||
39 | #define TIMESTAMP(id) ft_event0(id, save_timestamp) | 40 | #define TIMESTAMP(id) ft_event0(id, save_timestamp) |
40 | 41 | ||
@@ -57,6 +58,9 @@ feather_callback void save_timestamp_irq(unsigned long event, unsigned long irq_ | |||
57 | #define TIMESTAMP_IRQ(id, irq_count_ptr) \ | 58 | #define TIMESTAMP_IRQ(id, irq_count_ptr) \ |
58 | ft_event1(id, save_timestamp_irq, (unsigned long) irq_count_ptr) | 59 | ft_event1(id, save_timestamp_irq, (unsigned long) irq_count_ptr) |
59 | 60 | ||
61 | #define TIMESTAMP_IN_IRQ(id) \ | ||
62 | ft_event0(id, save_timestamp_hide_irq) | ||
63 | |||
60 | #else /* !CONFIG_SCHED_OVERHEAD_TRACE */ | 64 | #else /* !CONFIG_SCHED_OVERHEAD_TRACE */ |
61 | 65 | ||
62 | #define TIMESTAMP(id) /* no tracing */ | 66 | #define TIMESTAMP(id) /* no tracing */ |
@@ -75,6 +79,8 @@ feather_callback void save_timestamp_irq(unsigned long event, unsigned long irq_ | |||
75 | 79 | ||
76 | #define TIMESTAMP_IRQ(id, irq_count_ptr) /* no tracing */ | 80 | #define TIMESTAMP_IRQ(id, irq_count_ptr) /* no tracing */ |
77 | 81 | ||
82 | #define TIMESTAMP_IN_IRQ(id) /* no tracing */ | ||
83 | |||
78 | #endif | 84 | #endif |
79 | 85 | ||
80 | 86 | ||
@@ -132,7 +138,7 @@ feather_callback void save_timestamp_irq(unsigned long event, unsigned long irq_ | |||
132 | #define TS_EXIT_NP_END TIMESTAMP(151) | 138 | #define TS_EXIT_NP_END TIMESTAMP(151) |
133 | 139 | ||
134 | #define TS_SEND_RESCHED_START(c) CTIMESTAMP(190, c) | 140 | #define TS_SEND_RESCHED_START(c) CTIMESTAMP(190, c) |
135 | #define TS_SEND_RESCHED_END DTIMESTAMP(191, TSK_UNKNOWN) | 141 | #define TS_SEND_RESCHED_END TIMESTAMP_IN_IRQ(191) |
136 | 142 | ||
137 | #define TS_RELEASE_LATENCY(when) LTIMESTAMP(208, &(when)) | 143 | #define TS_RELEASE_LATENCY(when) LTIMESTAMP(208, &(when)) |
138 | 144 | ||