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