aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2012-09-04 08:39:09 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2012-10-18 16:14:05 -0400
commita481c27ddd7d324a9f311ae9a08228499dbb7f7b (patch)
tree09e380e77ba71a44d3a5c2d9c5144e90d005a439 /include
parenta13904d4b6d04278deb6841020dd7dee9867745e (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.h8
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)
35feather_callback void save_task_latency(unsigned long event, unsigned long when_ptr); 35feather_callback void save_task_latency(unsigned long event, unsigned long when_ptr);
36feather_callback void save_timestamp_time(unsigned long event, unsigned long time_ptr); 36feather_callback void save_timestamp_time(unsigned long event, unsigned long time_ptr);
37feather_callback void save_timestamp_irq(unsigned long event, unsigned long irq_count_ptr); 37feather_callback void save_timestamp_irq(unsigned long event, unsigned long irq_count_ptr);
38feather_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