1*2633Sahl /* 2*2633Sahl * CDDL HEADER START 3*2633Sahl * 4*2633Sahl * The contents of this file are subject to the terms of the 5*2633Sahl * Common Development and Distribution License (the "License"). 6*2633Sahl * You may not use this file except in compliance with the License. 7*2633Sahl * 8*2633Sahl * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*2633Sahl * or http://www.opensolaris.org/os/licensing. 10*2633Sahl * See the License for the specific language governing permissions 11*2633Sahl * and limitations under the License. 12*2633Sahl * 13*2633Sahl * When distributing Covered Code, include this CDDL HEADER in each 14*2633Sahl * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*2633Sahl * If applicable, add the following below this CDDL HEADER, with the 16*2633Sahl * fields enclosed by brackets "[]" replaced with your own identifying 17*2633Sahl * information: Portions Copyright [yyyy] [name of copyright owner] 18*2633Sahl * 19*2633Sahl * CDDL HEADER END 20*2633Sahl */ 21*2633Sahl 22*2633Sahl /* 23*2633Sahl * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24*2633Sahl * Use is subject to license terms. 25*2633Sahl */ 26*2633Sahl 27*2633Sahl #pragma ident "%Z%%M% %I% %E% SMI" 28*2633Sahl 29*2633Sahl /* 30*2633Sahl * ASSERTION: test for assertion failure in the ring buffer code 31*2633Sahl * 32*2633Sahl * SECTION: Buffers and Buffering/ring Policy; Misc 33*2633Sahl */ 34*2633Sahl 35*2633Sahl #pragma ident "@(#)tst.roch.d 1.2 03/08/11 SMI" 36*2633Sahl 37*2633Sahl /* 38*2633Sahl * A script from Roch Bourbonnais that induced an assertion failure in the 39*2633Sahl * ring buffer code. 40*2633Sahl */ 41*2633Sahl #pragma D option strsize=16 42*2633Sahl #pragma D option bufsize=10K 43*2633Sahl #pragma D option bufpolicy=ring 44*2633Sahl 45*2633Sahl fbt:::entry 46*2633Sahl /(self->done == 0) && (curthread->t_cpu->cpu_intr_actv == 0) / 47*2633Sahl { 48*2633Sahl self->done = 1; 49*2633Sahl printf(" %u 0x%llX %d %d comm:%s csathr:%lld", timestamp, 50*2633Sahl (long long)curthread, pid, tid, 51*2633Sahl execname, (long long)stackdepth); 52*2633Sahl stack(20); 53*2633Sahl } 54*2633Sahl 55*2633Sahl fbt:::return 56*2633Sahl /(self->done == 0) && (curthread->t_cpu->cpu_intr_actv == 0) / 57*2633Sahl { 58*2633Sahl self->done = 1; 59*2633Sahl printf(" %u 0x%llX %d %d comm:%s csathr:%lld", timestamp, 60*2633Sahl (long long) curthread, pid, tid, 61*2633Sahl execname, (long long) stackdepth); 62*2633Sahl stack(20); 63*2633Sahl } 64*2633Sahl 65*2633Sahl fbt:::entry 66*2633Sahl { 67*2633Sahl printf(" %u 0x%llX %d %d ", timestamp, 68*2633Sahl (long long)curthread, pid, tid); 69*2633Sahl } 70*2633Sahl 71*2633Sahl fbt:::return 72*2633Sahl { 73*2633Sahl printf(" %u 0x%llX %d %d tag:%d off:%d ", timestamp, 74*2633Sahl (long long)curthread, pid, tid, (int)arg1, (int)arg0); 75*2633Sahl } 76*2633Sahl 77*2633Sahl mutex_enter:adaptive-acquire 78*2633Sahl { 79*2633Sahl printf(" %u 0x%llX %d %d lock:0x%llX", timestamp, 80*2633Sahl (long long)curthread, pid, tid, arg0); 81*2633Sahl } 82*2633Sahl 83*2633Sahl mutex_exit:adaptive-release 84*2633Sahl { 85*2633Sahl printf(" %u 0x%llX %d %d lock:0x%llX", timestamp, 86*2633Sahl (long long) curthread, pid, tid, arg0); 87*2633Sahl } 88*2633Sahl 89*2633Sahl tick-1sec 90*2633Sahl /n++ == 10/ 91*2633Sahl { 92*2633Sahl exit(0); 93*2633Sahl } 94