This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
traceio.stp, extended
- From: Marcin Krol <admin at domeny dot pl>
- To: systemtap at sourceware dot org
- Date: Tue, 04 Dec 2007 12:35:08 +0100
- Subject: traceio.stp, extended
Hello everyone,
This may be trivial, but I extended the wiki example traceio.stp so that
it shows PID of process in addition to executable name, newbies might be
interested:
% cat traceio2.stp
#!/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, ename, total_io
probe kernel.function("vfs_read").return {
reads[pid()] += $return
ename[pid()] = execname()
}
probe kernel.function("vfs_write").return {
writes[pid()] += $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("%10s (%6d) r: %8d KiB w: %8d KiB\n",
ename[p], 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.
}
--
Marcin Krol