c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# CDDL HEADER START
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# The contents of this file are subject to the terms of the
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# Common Development and Distribution License (the "License").
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# You may not use this file except in compliance with the License.
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# or http://www.opensolaris.org/os/licensing.
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# See the License for the specific language governing permissions
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# and limitations under the License.
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# When distributing Covered Code, include this CDDL HEADER in each
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# If applicable, add the following below this CDDL HEADER, with the
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# fields enclosed by brackets "[]" replaced with your own identifying
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# information: Portions Copyright [yyyy] [name of copyright owner]
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# CDDL HEADER END
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
121d13daefbeb0546d0d9c6ef16c753aa6890290Frank Van Der Linden# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# Use is subject to license terms.
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# ASSERTION: Make sure that we can map in and read the Xen trace buffers.
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq
c7158ae983f5a04c4a998f468ecefba6d23ba721tariqif [ $# != 1 ]; then
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq echo expected one argument: '<'dtrace-path'>'
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq exit 2
c7158ae983f5a04c4a998f468ecefba6d23ba721tariqfi
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq# Do not fail the test in a domU
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq#
c7158ae983f5a04c4a998f468ecefba6d23ba721tariqif [ ! -c /dev/xen/privcmd ]; then
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq exit 0
c7158ae983f5a04c4a998f468ecefba6d23ba721tariqfi
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq
c7158ae983f5a04c4a998f468ecefba6d23ba721tariqdtrace=$1
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq
c7158ae983f5a04c4a998f468ecefba6d23ba721tariqscript()
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq{
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq $dtrace -qs /dev/stdin <<EOF
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq xdt:sched::on-cpu
121d13daefbeb0546d0d9c6ef16c753aa6890290Frank Van Der Linden /arg0 == 0/
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq {
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq self->on++;
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq }
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq xdt:sched::off-cpu
121d13daefbeb0546d0d9c6ef16c753aa6890290Frank Van Der Linden /arg0 == 0 && self->on/
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq {
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq self->off++;
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq }
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq xdt:sched::off-cpu
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq /self->on > 50 && self->off > 50/
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq {
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq exit(0);
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq }
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq profile:::tick-1sec
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq /n++ > 10/
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq {
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq exit(1);
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq }
c7158ae983f5a04c4a998f468ecefba6d23ba721tariqEOF
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq}
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq
c7158ae983f5a04c4a998f468ecefba6d23ba721tariqscript
c7158ae983f5a04c4a998f468ecefba6d23ba721tariqstatus=$?
c7158ae983f5a04c4a998f468ecefba6d23ba721tariq
c7158ae983f5a04c4a998f468ecefba6d23ba721tariqexit $status