You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ingo Molnar
82f67cd9fc
[PATCH] Add debugging feature /proc/timer_stat
Add /proc/timer_stats support: debugging feature to profile timer expiration.
Both the starting site, process/PID and the expiration function is captured.
This allows the quick identification of timer event sources in a system.
Sample output:
# echo 1 > /proc/timer_stats
# cat /proc/timer_stats
Timer Stats Version: v0.1
Sample period: 4.010 s
24, 0 swapper hrtimer_stop_sched_tick (hrtimer_sched_tick)
11, 0 swapper sk_reset_timer (tcp_delack_timer)
6, 0 swapper hrtimer_stop_sched_tick (hrtimer_sched_tick)
2, 1 swapper queue_delayed_work_on (delayed_work_timer_fn)
17, 0 swapper hrtimer_restart_sched_tick (hrtimer_sched_tick)
2, 1 swapper queue_delayed_work_on (delayed_work_timer_fn)
4, 2050 pcscd do_nanosleep (hrtimer_wakeup)
5, 4179 sshd sk_reset_timer (tcp_write_timer)
4, 2248 yum-updatesd schedule_timeout (process_timeout)
18, 0 swapper hrtimer_restart_sched_tick (hrtimer_sched_tick)
3, 0 swapper sk_reset_timer (tcp_delack_timer)
1, 1 swapper neigh_table_init_no_netlink (neigh_periodic_timer)
2, 1 swapper e1000_up (e1000_watchdog)
1, 1 init schedule_timeout (process_timeout)
100 total events, 25.24 events/sec
[ cleanups and hrtimers support from Thomas Gleixner <tglx@linutronix.de> ]
[bunk@stusta.de: nr_entries can become static]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
18 years ago |
.. |
reed_solomon
|
…
|
|
zlib_deflate
|
…
|
|
zlib_inflate
|
…
|
|
.gitignore
|
…
|
|
Kconfig
|
…
|
|
Kconfig.debug
|
[PATCH] Add debugging feature /proc/timer_stat
|
18 years ago |
Makefile
|
…
|
|
audit.c
|
…
|
|
bitmap.c
|
…
|
|
bitrev.c
|
…
|
|
bug.c
|
…
|
|
bust_spinlocks.c
|
…
|
|
cmdline.c
|
…
|
|
cpumask.c
|
…
|
|
crc-ccitt.c
|
…
|
|
crc16.c
|
…
|
|
crc32.c
|
…
|
|
crc32defs.h
|
…
|
|
ctype.c
|
…
|
|
debug_locks.c
|
…
|
|
dec_and_lock.c
|
…
|
|
devres.c
|
…
|
|
div64.c
|
…
|
|
dump_stack.c
|
…
|
|
extable.c
|
…
|
|
fault-inject.c
|
…
|
|
find_next_bit.c
|
…
|
|
gen_crc32table.c
|
…
|
|
genalloc.c
|
…
|
|
halfmd4.c
|
…
|
|
hweight.c
|
…
|
|
idr.c
|
…
|
|
inflate.c
|
…
|
|
int_sqrt.c
|
…
|
|
iomap.c
|
…
|
|
iomap_copy.c
|
…
|
|
ioremap.c
|
…
|
|
irq_regs.c
|
…
|
|
kernel_lock.c
|
…
|
|
klist.c
|
…
|
|
kobject.c
|
…
|
|
kobject_uevent.c
|
…
|
|
kref.c
|
…
|
|
libcrc32c.c
|
…
|
|
list_debug.c
|
…
|
|
locking-selftest-hardirq.h
|
…
|
|
locking-selftest-mutex.h
|
…
|
|
locking-selftest-rlock-hardirq.h
|
…
|
|
locking-selftest-rlock-softirq.h
|
…
|
|
locking-selftest-rlock.h
|
…
|
|
locking-selftest-rsem.h
|
…
|
|
locking-selftest-softirq.h
|
…
|
|
locking-selftest-spin-hardirq.h
|
…
|
|
locking-selftest-spin-softirq.h
|
…
|
|
locking-selftest-spin.h
|
…
|
|
locking-selftest-wlock-hardirq.h
|
…
|
|
locking-selftest-wlock-softirq.h
|
…
|
|
locking-selftest-wlock.h
|
…
|
|
locking-selftest-wsem.h
|
…
|
|
locking-selftest.c
|
…
|
|
parser.c
|
…
|
|
percpu_counter.c
|
…
|
|
plist.c
|
…
|
|
prio_tree.c
|
…
|
|
radix-tree.c
|
…
|
|
random32.c
|
…
|
|
rbtree.c
|
…
|
|
reciprocal_div.c
|
…
|
|
rwsem-spinlock.c
|
…
|
|
rwsem.c
|
…
|
|
semaphore-sleepers.c
|
…
|
|
sha1.c
|
…
|
|
smp_processor_id.c
|
…
|
|
sort.c
|
…
|
|
spinlock_debug.c
|
…
|
|
string.c
|
…
|
|
swiotlb.c
|
…
|
|
textsearch.c
|
…
|
|
ts_bm.c
|
…
|
|
ts_fsm.c
|
…
|
|
ts_kmp.c
|
…
|
|
vsprintf.c
|
…
|
|