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 /* 28 * Copyright (c) 2012 by Delphix. All rights reserved. 29 */ 30 31 /* 32 * ASSERTION: 33 * We set our buffer size absurdly low to prevent a flood of errors that we 34 * don't care about. We set our statusrate to be infinitely short to cause 35 * lots of activity by the DTrace process. 36 * 37 * SECTION: Actions and Subroutines/copyin(); 38 * Options and Tunables/bufsize; 39 * Options and Tunables/bufpolicy; 40 * Options and Tunables/statusrate 41 */ 42 43 44 #pragma D option bufsize=32 45 #pragma D option bufpolicy=ring 46 #pragma D option statusrate=1nsec 47 48 syscall:::entry 49 { 50 n++; 51 trace(copyin(rand(), 1)); 52 } 53 54 syscall:::entry 55 { 56 trace(copyin(rand() | 1, 1)); 57 } 58 59 syscall:::entry 60 { 61 trace(copyin(NULL, 1)); 62 } 63 64 dtrace:::ERROR 65 { 66 err++; 67 } 68 69 tick-1sec 70 /sec++ == 10/ 71 { 72 exit(2); 73 } 74 75 END 76 /n == 0 || err == 0/ 77 { 78 exit(1); 79 } 80 81 END 82 /n != 0 && err != 0/ 83 { 84 exit(0); 85 } 86