1 /* 2 * latencytop.h: Infrastructure for displaying latency 3 * 4 * (C) Copyright 2008 Intel Corporation 5 * Author: Arjan van de Ven <[email protected]> 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 extern int sysctl_latencytop(struct ctl_table *table, int write, 41 void __user *buffer, size_t *lenp, loff_t *ppos); 42 43 #else 44 45 static inline void 46 account_scheduler_latency(struct task_struct *task, int usecs, int inter) 47 { 48 } 49 50 static inline void clear_all_latency_tracing(struct task_struct *p) 51 { 52 } 53 54 #endif 55 56 #endif 57