d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm#!/sbin/sh
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm#
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# CDDL HEADER START
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm#
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# The contents of this file are subject to the terms of the
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# Common Development and Distribution License, Version 1.0 only
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# (the "License"). You may not use this file except in compliance
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# with the License.
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm#
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# or http://www.opensolaris.org/os/licensing.
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# See the License for the specific language governing permissions
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# and limitations under the License.
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm#
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# When distributing Covered Code, include this CDDL HEADER in each
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# If applicable, add the following below this CDDL HEADER, with the
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# fields enclosed by brackets "[]" replaced with your own identifying
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# information: Portions Copyright [yyyy] [name of copyright owner]
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm#
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# CDDL HEADER END
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm#
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm#
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# Use is subject to license terms.
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm#
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# ident "%Z%%M% %I% %E% SMI"
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm#
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm# Set default scheduling class
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm#
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm. /lib/svc/share/smf_include.sh
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm[ -f /etc/dispadmin.conf ] || exit $SMF_EXIT_OK
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rmif [ -x /usr/sbin/dispadmin ] && [ -x /usr/bin/priocntl ]; then
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm ERROR="$0: cannot set default scheduling class to "
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm DISPADMIN_D=`/usr/sbin/dispadmin -d`
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm if [ $? -eq 0 ]; then
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm #
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm # Inform the kernel about the default scheduling class.
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm #
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm /usr/sbin/dispadmin -u
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm DEFAULT_SCHEDULER=`echo $DISPADMIN_D | /usr/bin/cut -f1 -d' '`
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm /usr/bin/priocntl -s -c $DEFAULT_SCHEDULER -i all
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm if [ $? -ne 0 ]; then
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm echo $ERROR $DEFAULT_SCHEDULER
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm exit $SMF_EXIT_ERR_FATAL
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm else
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm #
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm # Also need to move init process explicitly
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm # because it was ignored by "-i all".
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm #
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm /usr/bin/priocntl -s -c $DEFAULT_SCHEDULER -i pid 1
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm if [ $? -ne 0 ]; then
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm echo $ERROR $DEFAULT_SCHEDULER
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm exit $SMF_EXIT_ERR_FATAL
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm fi
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm fi
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm else
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm #
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm # Default scheduling class from dispadmin.conf is
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm # invalid or not available.
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm #
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm exit $SMF_EXIT_ERR_CONFIG
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm fi
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rmelse
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm # dispadmin or priocntl commands can't be executed
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm echo "$0: cannot execute command"
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rm exit $SMF_EXIT_ERR_FATAL
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rmfi
d98ed3d7be38777343c0767e5c3bdc78a0eb1950rmexit $SMF_EXIT_OK