1 /* 2 * CDDL HEADER START 3 * 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. 7 * 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. 12 * 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] 18 * 19 * CDDL HEADER END 20 */ 21 22 /* 23 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 /* 27 * Copyright (c) 2012 by Delphix. All rights reserved. 28 */ 29 30 /* 31 * ASSERTION: 32 * Positive test for fill buffer policy. 33 * 34 * SECTION: Buffers and Buffering/fill Policy; 35 * Buffers and Buffering/Buffer Sizes; 36 * Options and Tunables/bufsize; 37 * Options and Tunables/bufpolicy; 38 * Options and Tunables/statusrate 39 */ 40 /* 41 * This is a brute-force way of testing fill buffers. We assume that 42 * each printf() stores 16 bytes (4x 32-bit words for EPID, timestamp 43 * lo, timestamp hi, and the variable i). Because each fill buffer is 44 * per-CPU, we must fill up our buffer in one series of enablings on a 45 * single CPU. 46 */ 47 #pragma D option bufpolicy=fill 48 #pragma D option bufsize=128 49 #pragma D option statusrate=10ms 50 #pragma D option quiet 51 52 int i; 53 54 tick-10ms 55 { 56 printf("%d\n", i++); 57 } 58 59 tick-10ms 60 { 61 printf("%d\n", i++); 62 } 63 64 tick-10ms 65 { 66 printf("%d\n", i++); 67 } 68 69 tick-10ms 70 { 71 printf("%d\n", i++); 72 } 73 74 tick-10ms 75 { 76 printf("%d\n", i++); 77 } 78 79 tick-10ms 80 { 81 printf("%d\n", i++); 82 } 83 84 tick-10ms 85 { 86 printf("%d\n", i++); 87 } 88 89 tick-10ms 90 { 91 printf("%d\n", i++); 92 } 93 94 tick-10ms 95 { 96 printf("%d\n", i++); 97 } 98 99 tick-10ms 100 { 101 printf("%d\n", i++); 102 } 103 104 tick-10ms 105 { 106 printf("%d\n", i++); 107 } 108 109 tick-10ms 110 { 111 printf("%d\n", i++); 112 } 113 114 tick-10ms 115 /i >= 100/ 116 { 117 exit(1); 118 } 119