This is the mail archive of the mailing list for the systemtap project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

% cat traceio2.stp

#!/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, 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,
       # Note we don't zero out reads, writes and total_io,
       # so the values are cumulative since the script started.

-- Marcin Krol

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]