diff options
Diffstat (limited to 'testsuite/systemtap.examples/network/dropwatch.stp')
-rwxr-xr-x | testsuite/systemtap.examples/network/dropwatch.stp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/testsuite/systemtap.examples/network/dropwatch.stp b/testsuite/systemtap.examples/network/dropwatch.stp new file mode 100755 index 00000000..79d50a4e --- /dev/null +++ b/testsuite/systemtap.examples/network/dropwatch.stp @@ -0,0 +1,30 @@ +#! /usr/bin/env stap + +############################################################ +# Dropwatch.stp +# Author: Neil Horman <nhorman@redhat.com> +# An example script to mimic the behavior of the dropwatch utility +# http://fedorahosted.org/dropwatch +############################################################ + +# Array to hold the list of drop points we find +global locations + +# Note when we turn the monitor on and off +probe begin { printf("Monitoring for dropped packets\n") } +probe end { printf("Stopping dropped packet monitor\n") } + +# increment a drop counter for every location we drop at +probe kernel.trace("kfree_skb") { locations[$location] <<< 1 } + +# Every 5 seconds report our drop locations +probe timer.sec(5) +{ + printf("\n") + foreach (l in locations-) { + printf("%d packets dropped at location %p\n", + @count(locations[l]), l) + } + delete locations +} + |