dmake: do not set MAKEFLAGS=k
[unleashed/tickless.git] / usr / src / cmd / dtrace / test / tst / common / buffering / tst.cputime.ksh
blob6ac0fa9e27a34c7c5ff7bc29517c327b4bccb103
2 # CDDL HEADER START
4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
19 # CDDL HEADER END
23 # Copyright 2006 Sun Microsystems, Inc. All rights reserved.
24 # Use is subject to license terms.
26 #ident "%Z%%M% %I% %E% SMI"
28 script()
30 $dtrace -s /dev/stdin -x bufpolicy=$1 $1 <<EOF
32 #pragma D option quiet
33 #pragma D option statusrate=1hz
35 uint64_t total;
36 int thresh;
38 BEGIN
40 start = timestamp;
41 thresh = 10;
44 sched:::on-cpu
45 /pid == \$pid/
47 self->on = vtimestamp;
50 sched:::off-cpu
51 /self->on/
53 total += vtimestamp - self->on;
56 tick-1sec
57 /i++ == 10/
59 exit(0);
62 END
63 /((total * 100) / (timestamp - start)) > thresh/
65 printf("'%s' buffering policy took %d%% of CPU; ",
66 \$\$1, ((total * 100) / (timestamp - start)));
67 printf("expected no more than %d%%!\n", thresh);
68 exit(1);
70 EOF
73 if [ $# != 1 ]; then
74 echo expected one argument: '<'dtrace-path'>'
75 exit 2
78 dtrace=$1
80 for policy in "fill ring switch"; do
81 script $policy
83 status=$?
85 if [ "$status" -ne 0 ]; then
86 exit $status
88 done
90 exit 0