summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.examples/io/traceio.stp
blob: d3757c23d09164132507245850dc64d04acaa996 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env stap
# traceio.stp
# Copyright (C) 2007 Red Hat, Inc., Eugene Teo <eteo@redhat.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#

global reads, writes, total_io

probe kernel.function("vfs_read").return {
	reads[execname()] += $return
}

probe kernel.function("vfs_write").return {
	writes[execname()] += $return
}

probe timer.s(1) {
	foreach (p in reads)
		total_io[p] += reads[p]
	foreach (p in writes)
		total_io[p] += writes[p]
	foreach(p in total_io- limit 10)
		printf("%15s r: %8d KiB w: %8d KiB\n",
			p, reads[p]/1024,
			writes[p]/1024)
		printf("\n")
	# Note we don't zero out reads, writes and total_io,
	# so the values are cumulative since the script started.
}