#! /usr/bin/env stap # traceio.stp # Copyright (C) 2007 Red Hat, Inc., Eugene Teo # # 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. }