1 /* 2 * latencytop.h: Infrastructure for displaying latency 3 * 4 * (C) Copyright 2008 Intel Corporation 5 * Author: Arjan van de Ven <arjan@linux.intel.com> 6 * 7 */ 8 9 #ifndef _INCLUDE_GUARD_LATENCYTOP_H_ 10 #define _INCLUDE_GUARD_LATENCYTOP_H_ 11 12 #include <linux/compiler.h> 13 struct task_struct; 14 15 #ifdef CONFIG_LATENCYTOP 16 17 #define LT_SAVECOUNT 32 18 #define LT_BACKTRACEDEPTH 12 19 20 struct latency_record { 21 unsigned long backtrace[LT_BACKTRACEDEPTH]; 22 unsigned int count; 23 unsigned long time; 24 unsigned long max; 25 }; 26 27 28 29 extern int latencytop_enabled; 30 void __account_scheduler_latency(struct task_struct *task, int usecs, int inter); 31 static inline void 32 account_scheduler_latency(struct task_struct *task, int usecs, int inter) 33 { 34 if (unlikely(latencytop_enabled)) 35 __account_scheduler_latency(task, usecs, inter); 36 } 37 38 void clear_all_latency_tracing(struct task_struct *p); 39 40 #else 41 42 static inline void 43 account_scheduler_latency(struct task_struct *task, int usecs, int inter) 44 { 45 } 46 47 static inline void clear_all_latency_tracing(struct task_struct *p) 48 { 49 } 50 51 #endif 52 53 #endif 54