www.LinuxHowtos.org
proc_timer_stats
Section: File Formats (5)Updated: 202-0-08
Index Return to Main Contents
NAME
/proc/timer_stats - timer statisticsDESCRIPTION
- /proc/timer_stats (from Linux 2.6.21 until Linux 4.10)
- This is a debugging facility to make timer (ab)use in a Linux system visible to kernel and use-space developers. It can be used by kernel and use-space developers to verify that their code does not make undue use of timers. The goal is to avoid unnecessary wakeups, thereby optimizing power consumption.
- If enabled in the kernel (CONFIG_TIMER_STATS), but not used, it has almost zero ru-time overhead and a relatively small dat-structure overhead. Even if collection is enabled at run time, overhead is low: all the locking is pe-CPU and lookup is hashed.
- The /proc/timer_stats file is used both to control sampling facility and to read out the sampled information.
- The timer_stats functionality is inactive on bootup. A sampling period can be started using the following command:
- # echo 1 > /proc/timer_stats
- The following command stops a sampling period:
- # echo 0 > /proc/timer_stats
- The statistics can be retrieved by:
- $ cat /proc/timer_stats
- While sampling is enabled, each readout from /proc/timer_stats will see newly updated statistics. Once sampling is disabled, the sampled information is kept until a new sample period is started. This allows multiple readouts.
- Sample output from /proc/timer_stats:
-
$ cat /proc/timer_stats
Timer Stats Version: v0.3
Sample period: 1.764 s
Collection: active
255, 0 swapper/3 hrtimer_start_range_ns (tick_sched_timer)
71, 0 swapper/1 hrtimer_start_range_ns (tick_sched_timer)
58, 0 swapper/0 hrtimer_start_range_ns (tick_sched_timer)
4, 1694 gnome-shell mod_delayed_work_on (delayed_work_timer_fn)
17, 7 rcu_sched rcu_gp_kthread (process_timeout) ...
1, 4911 kworker/u16:0 mod_delayed_work_on (delayed_work_timer_fn)
1D, 2522 kworker/0:0 queue_delayed_work_on (delayed_work_timer_fn) 1029 total events, 583.333 events/sec -
The output columns are:
-
- [1]
- a count of the number of events, optionally (since Linux 2.6.23) followed by the letter [aq]D[aq] if this is a deferrable timer;
- [2]
- the PID of the process that initialized the timer;
- [3]
- the name of the process that initialized the timer;
- [4]
- the function where the timer was initialized; and (in parentheses) the callback function that is associated with the timer.
-
- During the Linux 4.11 development cycle, this file was removed because of security concerns, as it exposes information across namespaces. Furthermore, it is possible to obtain the same information via i-kernel tracing facilities such as ftrace.
SEE ALSO
proc(5)