-typedef struct processor_data processor_data_t;
-
-#define PROCESSOR_DATA(processor, member) \
- (processor)->processor_data.member
-
-extern void processor_data_init(
- processor_t processor);
+typedef struct processor_data processor_data_t;
+
+#define PROCESSOR_DATA(processor, member) \
+ (processor)->processor_data.member
+
+extern void processor_data_init(
+ processor_t processor);
+
+#define SCHED_STATS_INTERRUPT(p) \
+MACRO_BEGIN \
+ if (__builtin_expect(sched_stats_active, 0)) { \
+ (p)->processor_data.sched_stats.interrupt_count++; \
+ } \
+MACRO_END
+
+#define SCHED_STATS_TIMER_POP(p) \
+MACRO_BEGIN \
+ if (__builtin_expect(sched_stats_active, 0)) { \
+ (p)->processor_data.sched_stats.timer_pop_count++; \
+ } \
+MACRO_END
+
+#define SCHED_STATS_IPI(p) \
+MACRO_BEGIN \
+ if (__builtin_expect(sched_stats_active, 0)) { \
+ (p)->processor_data.sched_stats.ipi_count++; \
+ } \
+MACRO_END
+
+#define SCHED_STATS_CPU_IDLE_START(p) \
+MACRO_BEGIN \
+ if (__builtin_expect(sched_stats_active, 0)) { \
+ (p)->processor_data.sched_stats.idle_transitions++; \
+ } \
+MACRO_END
+
+#define SCHED_STATS_QUANTUM_TIMER_EXPIRATION(p) \
+MACRO_BEGIN \
+ if (__builtin_expect(sched_stats_active, 0)) { \
+ (p)->processor_data.sched_stats.quantum_timer_expirations++; \
+ } \
+MACRO_END