1 /* SPDX-License-Identifier: GPL-2.0 */ 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 2 /* 3 * latencytop.h: Infrastructure for displaying 3 * latencytop.h: Infrastructure for displaying latency 4 * 4 * 5 * (C) Copyright 2008 Intel Corporation 5 * (C) Copyright 2008 Intel Corporation 6 * Author: Arjan van de Ven <arjan@linux.intel 6 * Author: Arjan van de Ven <arjan@linux.intel.com> 7 * 7 * 8 */ 8 */ 9 9 10 #ifndef _INCLUDE_GUARD_LATENCYTOP_H_ 10 #ifndef _INCLUDE_GUARD_LATENCYTOP_H_ 11 #define _INCLUDE_GUARD_LATENCYTOP_H_ 11 #define _INCLUDE_GUARD_LATENCYTOP_H_ 12 12 13 #include <linux/compiler.h> 13 #include <linux/compiler.h> 14 struct task_struct; 14 struct task_struct; 15 15 16 #ifdef CONFIG_LATENCYTOP 16 #ifdef CONFIG_LATENCYTOP 17 17 18 #define LT_SAVECOUNT 32 18 #define LT_SAVECOUNT 32 19 #define LT_BACKTRACEDEPTH 12 19 #define LT_BACKTRACEDEPTH 12 20 20 21 struct latency_record { 21 struct latency_record { 22 unsigned long backtrace[LT_BACKTRACE 22 unsigned long backtrace[LT_BACKTRACEDEPTH]; 23 unsigned int count; 23 unsigned int count; 24 unsigned long time; 24 unsigned long time; 25 unsigned long max; 25 unsigned long max; 26 }; 26 }; 27 27 28 28 29 29 30 extern int latencytop_enabled; 30 extern int latencytop_enabled; 31 void __account_scheduler_latency(struct task_s 31 void __account_scheduler_latency(struct task_struct *task, int usecs, int inter); 32 static inline void 32 static inline void 33 account_scheduler_latency(struct task_struct * 33 account_scheduler_latency(struct task_struct *task, int usecs, int inter) 34 { 34 { 35 if (unlikely(latencytop_enabled)) 35 if (unlikely(latencytop_enabled)) 36 __account_scheduler_latency(ta 36 __account_scheduler_latency(task, usecs, inter); 37 } 37 } 38 38 39 void clear_tsk_latency_tracing(struct task_str 39 void clear_tsk_latency_tracing(struct task_struct *p); 40 40 >> 41 extern int sysctl_latencytop(struct ctl_table *table, int write, >> 42 void __user *buffer, size_t *lenp, loff_t *ppos); >> 43 41 #else 44 #else 42 45 43 static inline void 46 static inline void 44 account_scheduler_latency(struct task_struct * 47 account_scheduler_latency(struct task_struct *task, int usecs, int inter) 45 { 48 { 46 } 49 } 47 50 48 static inline void clear_tsk_latency_tracing(s 51 static inline void clear_tsk_latency_tracing(struct task_struct *p) 49 { 52 { 50 } 53 } 51 54 52 #endif 55 #endif 53 56 54 #endif 57 #endif 55 58
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.