1*b9e93c10SJonathan Haslam#!/bin/ksh 2*b9e93c10SJonathan Haslam# 3*b9e93c10SJonathan Haslam# CDDL HEADER START 4*b9e93c10SJonathan Haslam# 5*b9e93c10SJonathan Haslam# The contents of this file are subject to the terms of the 6*b9e93c10SJonathan Haslam# Common Development and Distribution License (the "License"). 7*b9e93c10SJonathan Haslam# You may not use this file except in compliance with the License. 8*b9e93c10SJonathan Haslam# 9*b9e93c10SJonathan Haslam# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*b9e93c10SJonathan Haslam# or http://www.opensolaris.org/os/licensing. 11*b9e93c10SJonathan Haslam# See the License for the specific language governing permissions 12*b9e93c10SJonathan Haslam# and limitations under the License. 13*b9e93c10SJonathan Haslam# 14*b9e93c10SJonathan Haslam# When distributing Covered Code, include this CDDL HEADER in each 15*b9e93c10SJonathan Haslam# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*b9e93c10SJonathan Haslam# If applicable, add the following below this CDDL HEADER, with the 17*b9e93c10SJonathan Haslam# fields enclosed by brackets "[]" replaced with your own identifying 18*b9e93c10SJonathan Haslam# information: Portions Copyright [yyyy] [name of copyright owner] 19*b9e93c10SJonathan Haslam# 20*b9e93c10SJonathan Haslam# CDDL HEADER END 21*b9e93c10SJonathan Haslam# 22*b9e93c10SJonathan Haslam 23*b9e93c10SJonathan Haslam# 24*b9e93c10SJonathan Haslam# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 25*b9e93c10SJonathan Haslam# Use is subject to license terms. 26*b9e93c10SJonathan Haslam 27*b9e93c10SJonathan Haslam# 28*b9e93c10SJonathan Haslam# This script ensures that cputrack(1) will terminate when the cpc provider 29*b9e93c10SJonathan Haslam# kicks into life. 30*b9e93c10SJonathan Haslam# 31*b9e93c10SJonathan Haslam# The script will fail if: 32*b9e93c10SJonathan Haslam# 1) The system under test does not define the 'PAPI_tot_ins' event. 33*b9e93c10SJonathan Haslam# 34*b9e93c10SJonathan Haslam 35*b9e93c10SJonathan Haslamscript() 36*b9e93c10SJonathan Haslam{ 37*b9e93c10SJonathan Haslam $dtrace -s /dev/stdin <<EOF 38*b9e93c10SJonathan Haslam #pragma D option bufsize=128k 39*b9e93c10SJonathan Haslam 40*b9e93c10SJonathan Haslam cpc:::PAPI_tot_ins-all-10000 41*b9e93c10SJonathan Haslam { 42*b9e93c10SJonathan Haslam @[probename] = count(); 43*b9e93c10SJonathan Haslam } 44*b9e93c10SJonathan Haslam 45*b9e93c10SJonathan Haslam tick-1s 46*b9e93c10SJonathan Haslam /n++ > 10/ 47*b9e93c10SJonathan Haslam { 48*b9e93c10SJonathan Haslam exit(0); 49*b9e93c10SJonathan Haslam } 50*b9e93c10SJonathan HaslamEOF 51*b9e93c10SJonathan Haslam} 52*b9e93c10SJonathan Haslam 53*b9e93c10SJonathan Haslamif [ $# != 1 ]; then 54*b9e93c10SJonathan Haslam echo expected one argument: '<'dtrace-path'>' 55*b9e93c10SJonathan Haslam exit 2 56*b9e93c10SJonathan Haslamfi 57*b9e93c10SJonathan Haslam 58*b9e93c10SJonathan Haslamdtrace=$1 59*b9e93c10SJonathan Haslam 60*b9e93c10SJonathan Haslamcputrack -c PAPI_tot_ins sleep 20 & 61*b9e93c10SJonathan Haslamcputrack_pid=$! 62*b9e93c10SJonathan Haslamsleep 5 63*b9e93c10SJonathan Haslamscript 2>/dev/null & 64*b9e93c10SJonathan Haslam 65*b9e93c10SJonathan Haslamwait $cputrack_pid 66*b9e93c10SJonathan Haslamstatus=$? 67*b9e93c10SJonathan Haslam 68*b9e93c10SJonathan Haslamrm $dtraceout 69*b9e93c10SJonathan Haslam 70*b9e93c10SJonathan Haslamexit $status 71