From 111dd9ac1d5e127b80c89be484be37ea326b449d Mon Sep 17 00:00:00 2001 From: William Cohen Date: Tue, 2 Feb 2010 14:32:38 -0500 Subject: Add nfs_func_users example. --- testsuite/systemtap.examples/io/nfs_func_users.meta | 13 +++++++++++++ testsuite/systemtap.examples/io/nfs_func_users.stp | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 testsuite/systemtap.examples/io/nfs_func_users.meta create mode 100755 testsuite/systemtap.examples/io/nfs_func_users.stp (limited to 'testsuite/systemtap.examples/io') diff --git a/testsuite/systemtap.examples/io/nfs_func_users.meta b/testsuite/systemtap.examples/io/nfs_func_users.meta new file mode 100644 index 00000000..e37d401a --- /dev/null +++ b/testsuite/systemtap.examples/io/nfs_func_users.meta @@ -0,0 +1,13 @@ +title: Tally the Number of NFS Functions Used by Each Process +name: nfs_func_users.stp +version: 1.0 +author: William Cohen +keywords: io profiling +subsystem: io +status: production +exit: user-controlled +output: sorted-list +scope: system-wide +description: The nfs_func_users.stp script counts the uses of NFS functions in the kernel on a per process bases. The output is sorted from the process with the greatest number of NFS functions called to the least. The output contains the executable name, the process number, and the total number of NFS functions called by the process. +test_check: stap -p4 nfs_func_users.stp +test_installcheck: stap nfs_func_users.stp -c "sleep 0.2" diff --git a/testsuite/systemtap.examples/io/nfs_func_users.stp b/testsuite/systemtap.examples/io/nfs_func_users.stp new file mode 100755 index 00000000..010db420 --- /dev/null +++ b/testsuite/systemtap.examples/io/nfs_func_users.stp @@ -0,0 +1,18 @@ +#!/usr/bin/env stap + +global nfsdcalls + +probe begin { + printf("Collecting top NFSD procs...\n") +} + +probe kernel.function("*@fs/nfs/*proc.c") ?, + module("nfs").function("*@fs/nfs/*proc.c") ? { + nfsdcalls[execname(), pid()]++ +} + +probe end { + printf("\nname(pid) nfs ops\n"); + foreach ([name,p] in nfsdcalls- limit 20) + printf("%s(%d) %d\n", name, p, nfsdcalls[name, p]) +} -- cgit