1*c373aa8bSJohn Wren Kennedy /* 2*c373aa8bSJohn Wren Kennedy * This file and its contents are supplied under the terms of the 3*c373aa8bSJohn Wren Kennedy * Common Development and Distribution License ("CDDL"), version 1.0. 4*c373aa8bSJohn Wren Kennedy * You may only use this file in accordance with the terms of version 5*c373aa8bSJohn Wren Kennedy * 1.0 of the CDDL. 6*c373aa8bSJohn Wren Kennedy * 7*c373aa8bSJohn Wren Kennedy * A full copy of the text of the CDDL should have accompanied this 8*c373aa8bSJohn Wren Kennedy * source. A copy of the CDDL is also available via the Internet at 9*c373aa8bSJohn Wren Kennedy * http://www.illumos.org/license/CDDL. 10*c373aa8bSJohn Wren Kennedy */ 11*c373aa8bSJohn Wren Kennedy 12*c373aa8bSJohn Wren Kennedy /* 13*c373aa8bSJohn Wren Kennedy * Copyright (c) 2016 by Delphix. All rights reserved. 14*c373aa8bSJohn Wren Kennedy */ 15*c373aa8bSJohn Wren Kennedy 16*c373aa8bSJohn Wren Kennedy #pragma D option stackframes=100 17*c373aa8bSJohn Wren Kennedy 18*c373aa8bSJohn Wren Kennedy /* 19*c373aa8bSJohn Wren Kennedy * @stacks: The number of times a stack has been recorded 20*c373aa8bSJohn Wren Kennedy */ 21*c373aa8bSJohn Wren Kennedy 22*c373aa8bSJohn Wren Kennedy sched:::off-cpu 23*c373aa8bSJohn Wren Kennedy { 24*c373aa8bSJohn Wren Kennedy self->ts = timestamp; 25*c373aa8bSJohn Wren Kennedy } 26*c373aa8bSJohn Wren Kennedy 27*c373aa8bSJohn Wren Kennedy sched:::on-cpu 28*c373aa8bSJohn Wren Kennedy / self->ts != 0 / 29*c373aa8bSJohn Wren Kennedy { 30*c373aa8bSJohn Wren Kennedy @stacks[stack()] = sum(timestamp - self->ts); 31*c373aa8bSJohn Wren Kennedy self->ts = 0; 32*c373aa8bSJohn Wren Kennedy } 33*c373aa8bSJohn Wren Kennedy 34*c373aa8bSJohn Wren Kennedy ERROR 35*c373aa8bSJohn Wren Kennedy { 36*c373aa8bSJohn Wren Kennedy trace(arg1); 37*c373aa8bSJohn Wren Kennedy trace(arg2); 38*c373aa8bSJohn Wren Kennedy trace(arg3); 39*c373aa8bSJohn Wren Kennedy trace(arg4); 40*c373aa8bSJohn Wren Kennedy trace(arg5); 41*c373aa8bSJohn Wren Kennedy } 42