summaryrefslogtreecommitdiffstats
path: root/examples/nettop.stp
diff options
context:
space:
mode:
authorfche <fche>2007-01-02 04:33:41 +0000
committerfche <fche>2007-01-02 04:33:41 +0000
commit7ad9d4f58308c4d8f35f2212ce82212301dfeeff (patch)
treed5eaf2ca091067ea5f95ef4fad47e5921f02a265 /examples/nettop.stp
parent6f313a734d26b13cb77de68638dc1b9913891c07 (diff)
downloadsystemtap-steved-7ad9d4f58308c4d8f35f2212ce82212301dfeeff.tar.gz
systemtap-steved-7ad9d4f58308c4d8f35f2212ce82212301dfeeff.tar.xz
systemtap-steved-7ad9d4f58308c4d8f35f2212ce82212301dfeeff.zip
2007-01-01 Frank Ch. Eigler <fche@redhat.com>
* configure.ac: Bump version to 0.5.12 for release. * configure: Regenerated. * NEWS, AUTHORS: Populate & repopulate. * examples/*: Added several .stp/.txt files from the wiki.
Diffstat (limited to 'examples/nettop.stp')
-rw-r--r--examples/nettop.stp53
1 files changed, 53 insertions, 0 deletions
diff --git a/examples/nettop.stp b/examples/nettop.stp
new file mode 100644
index 00000000..4004a03d
--- /dev/null
+++ b/examples/nettop.stp
@@ -0,0 +1,53 @@
+global ifxmit, ifrecv, ifdevs, ifpid, execname, user
+
+probe netdev.transmit
+{
+ p = pid()
+ execname[p] = execname()
+ user[p] = uid()
+ ifdevs[p, dev_name] = dev_name
+ ifxmit[p, dev_name] <<< length
+ ifpid[p, dev_name] ++
+}
+
+probe netdev.receive
+{
+ p = pid()
+ execname[p] = execname()
+ user[p] = uid()
+ ifdevs[p, dev_name] = dev_name
+ ifrecv[p, dev_name] <<< length
+ ifpid[p, dev_name] ++
+}
+
+
+function print_activity()
+{
+ printf("%5s %5s %-7s %7s %7s %7s %7s %-15s\n",
+ "PID", "UID", "DEV", "XMIT_PK", "RECV_PK",
+ "XMIT_KB", "RECV_KB", "COMMAND")
+
+ foreach ([pid, dev] in ifpid-) {
+ n_xmit = @count(ifxmit[pid, dev])
+ n_recv = @count(ifrecv[pid, dev])
+ printf("%5d %5d %-7s %7d %7d %7d %7d %-15s\n",
+ pid, user[pid], dev, n_xmit, n_recv,
+ n_xmit ? @sum(ifxmit[pid, dev])/1024 : 0,
+ n_recv ? @sum(ifrecv[pid, dev])/1024 : 0,
+ execname[pid])
+ }
+
+ print("\n")
+
+ delete execname
+ delete user
+ delete ifdevs
+ delete ifxmit
+ delete ifrecv
+ delete ifpid
+}
+
+probe timer.ms(5000)
+{
+ print_activity()
+}