#! /usr/bin/env stap # Copyright (C) 2012-2018 Red Hat, Inc. # by William Cohen # # exercise the stopwatch tapset probe begin { start_stopwatch("wall"); /* The next two lines assumes that target is running and in user-space. */ start_stopwatch("user"); stop_stopwatch("system") } probe syscall_any { if (pid() != target()) next stop_stopwatch("user") start_stopwatch("system") } probe syscall_any.return { if (pid() != target()) next start_stopwatch("user") stop_stopwatch("system") } probe end { stop_stopwatch("wall") stop_stopwatch("user") stop_stopwatch("system") w = read_stopwatch_us("wall") u = read_stopwatch_us("user") s = read_stopwatch_us("system") printf ("wall clock %12dus\n", w); printf ("wall clock in user-space %12dus\n", u); printf ("wall clock in kernel-space %12dus\n", s); delete_stopwatch("wall") delete_stopwatch("user") delete_stopwatch("system") }