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