1*1670a1c2SRui Paulo /* 2*1670a1c2SRui Paulo * CDDL HEADER START 3*1670a1c2SRui Paulo * 4*1670a1c2SRui Paulo * The contents of this file are subject to the terms of the 5*1670a1c2SRui Paulo * Common Development and Distribution License (the "License"). 6*1670a1c2SRui Paulo * You may not use this file except in compliance with the License. 7*1670a1c2SRui Paulo * 8*1670a1c2SRui Paulo * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*1670a1c2SRui Paulo * or http://www.opensolaris.org/os/licensing. 10*1670a1c2SRui Paulo * See the License for the specific language governing permissions 11*1670a1c2SRui Paulo * and limitations under the License. 12*1670a1c2SRui Paulo * 13*1670a1c2SRui Paulo * When distributing Covered Code, include this CDDL HEADER in each 14*1670a1c2SRui Paulo * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*1670a1c2SRui Paulo * If applicable, add the following below this CDDL HEADER, with the 16*1670a1c2SRui Paulo * fields enclosed by brackets "[]" replaced with your own identifying 17*1670a1c2SRui Paulo * information: Portions Copyright [yyyy] [name of copyright owner] 18*1670a1c2SRui Paulo * 19*1670a1c2SRui Paulo * CDDL HEADER END 20*1670a1c2SRui Paulo */ 21*1670a1c2SRui Paulo 22*1670a1c2SRui Paulo /* 23*1670a1c2SRui Paulo * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24*1670a1c2SRui Paulo * Use is subject to license terms. 25*1670a1c2SRui Paulo */ 26*1670a1c2SRui Paulo 27*1670a1c2SRui Paulo /* 28*1670a1c2SRui Paulo * ASSERTION: 29*1670a1c2SRui Paulo * Aggregating actions may never be speculative. 30*1670a1c2SRui Paulo * 31*1670a1c2SRui Paulo * SECTION: Speculative Tracing/Using a Speculation 32*1670a1c2SRui Paulo * 33*1670a1c2SRui Paulo */ 34*1670a1c2SRui Paulo #pragma D option quiet 35*1670a1c2SRui Paulo 36*1670a1c2SRui Paulo BEGIN 37*1670a1c2SRui Paulo { 38*1670a1c2SRui Paulo i = 0; 39*1670a1c2SRui Paulo } 40*1670a1c2SRui Paulo 41*1670a1c2SRui Paulo profile:::tick-1sec 42*1670a1c2SRui Paulo /i < 1/ 43*1670a1c2SRui Paulo { 44*1670a1c2SRui Paulo var = speculation(); 45*1670a1c2SRui Paulo speculate(var); 46*1670a1c2SRui Paulo printf("Speculation ID: %d", var); 47*1670a1c2SRui Paulo @sdev["speculate"] = stddev(i); 48*1670a1c2SRui Paulo i++; 49*1670a1c2SRui Paulo } 50*1670a1c2SRui Paulo 51*1670a1c2SRui Paulo profile:::tick-1sec 52*1670a1c2SRui Paulo /1 == i/ 53*1670a1c2SRui Paulo { 54*1670a1c2SRui Paulo exit(0); 55*1670a1c2SRui Paulo } 56*1670a1c2SRui Paulo 57*1670a1c2SRui Paulo ERROR 58*1670a1c2SRui Paulo { 59*1670a1c2SRui Paulo exit(0); 60*1670a1c2SRui Paulo } 61*1670a1c2SRui Paulo 62*1670a1c2SRui Paulo END 63*1670a1c2SRui Paulo { 64*1670a1c2SRui Paulo exit(0); 65*1670a1c2SRui Paulo } 66