bd0891ceb3
PR: 191174 Submitted by: Franco Fichtner <franco@lastsummer.de>
163 lines
4.6 KiB
Groff
163 lines
4.6 KiB
Groff
.\" Copyright (c) 2009-2010 Fabio Checconi
|
|
.\" Copyright (c) 2009-2010 Luigi Rizzo, Universita` di Pisa
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd July 26, 2012
|
|
.Dt GSCHED 8
|
|
.Os
|
|
.Sh NAME
|
|
.Nm gsched
|
|
.Nd "control utility for disk scheduler GEOM class"
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Cm create
|
|
.Op Fl v
|
|
.Op Fl a Ar algorithm
|
|
.Ar provider ...
|
|
.Nm
|
|
.Cm insert
|
|
.Op Fl v
|
|
.Op Fl a Ar algorithm
|
|
.Ar provider ...
|
|
.Nm
|
|
.Cm configure
|
|
.Op Fl v
|
|
.Op Fl a Ar algorithm
|
|
.Ar node ...
|
|
.Nm
|
|
.Cm destroy
|
|
.Op Fl fv
|
|
.Ar node ...
|
|
.Nm
|
|
.Cm reset
|
|
.Op Fl v
|
|
.Ar node ...
|
|
.Nm
|
|
.Cm { list | status | load | unload }
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
utility (also callable as
|
|
.Nm geom sched ... )
|
|
changes the scheduling policy of the requests going to a provider.
|
|
.Pp
|
|
The first argument to
|
|
.Nm
|
|
indicates an action to be performed:
|
|
.Bl -tag -width ".Cm configure"
|
|
.It Cm create
|
|
Create a new provider and geom node using the specified scheduling algorithm.
|
|
.Ar algorithm
|
|
is the name of the scheduling algorithm used for the provider.
|
|
Available algorithms include:
|
|
.Ar rr ,
|
|
which implements anticipatory scheduling with round robin service
|
|
among clients;
|
|
.Ar as ,
|
|
which implements a simple form of anticipatory scheduling with
|
|
no per-client queue.
|
|
.Pp
|
|
If the operation succeeds, the new provider should appear with name
|
|
.Pa /dev/ Ns Ao Ar dev Ac Ns Pa .sched. .
|
|
The kernel module
|
|
.Pa geom_sched.ko
|
|
will be loaded if it is not loaded already.
|
|
.It Cm insert
|
|
Operates as "create", but the insertion is "transparent",
|
|
i.e. the existing provider is rerouted to the newly created geom,
|
|
which in turn forwards requests to the existing geom.
|
|
This operation allows one to start/stop a scheduling service
|
|
on an already existing provider.
|
|
.Pp
|
|
A subsequent "destroy" will remove the newly created geom and
|
|
hook the provider back to the original geom.
|
|
.It Cm configure
|
|
Configure existing scheduling provider. It supports the same options
|
|
as the
|
|
.Nm create
|
|
command.
|
|
.It Cm destroy
|
|
Destroy the geom specified in the parameter.
|
|
.It Cm reset
|
|
Do nothing.
|
|
.It Cm list | status | load | unload
|
|
See
|
|
.Xr geom 8 .
|
|
.El
|
|
.Pp
|
|
Additional options:
|
|
.Bl -tag -width ".Fl f"
|
|
.It Fl f
|
|
Force the removal of the specified provider.
|
|
.It Fl v
|
|
Be more verbose.
|
|
.El
|
|
.Sh SYSCTL VARIABLES
|
|
The following
|
|
.Xr sysctl 8
|
|
variables can be used to control the behavior of the
|
|
.Nm SCHED
|
|
GEOM class.
|
|
The default value is shown next to each variable.
|
|
.Bl -tag -width indent
|
|
.It Va kern.geom.sched.debug : No 0
|
|
Debug level of the
|
|
.Nm SCHED
|
|
GEOM class.
|
|
This can be set to a number between 0 and 2 inclusive.
|
|
If set to 0 minimal debug information is printed, and if set to 2 the
|
|
maximum amount of debug information is printed.
|
|
.El
|
|
.Sh EXIT STATUS
|
|
Exit status is 0 on success, and 1 if the command fails.
|
|
.Sh EXAMPLES
|
|
The following example shows how to create a scheduling provider for disk
|
|
.Pa /dev/ada0 ,
|
|
and how to destroy it.
|
|
.Bd -literal -offset indent
|
|
# Load the geom_sched module:
|
|
kldload geom_sched
|
|
# Load some scheduler classes used by geom_sched:
|
|
kldload gsched_rr
|
|
# Configure device ada0 to use scheduler "rr":
|
|
geom sched insert -a rr ada0
|
|
# Now provider ada0 uses the "rr" algorithm;
|
|
# the new geom is ada0.sched.
|
|
# Remove the scheduler on the device:
|
|
geom sched destroy -v ada0.sched.
|
|
.Ed
|
|
.Sh SEE ALSO
|
|
.Xr geom 4 ,
|
|
.Xr geom 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
utility first appeared in
|
|
.Fx 8.1 .
|
|
.Sh AUTHORS
|
|
.An Fabio Checconi Aq Mt fabio@FreeBSD.org
|
|
.An Luigi Rizzo Aq Mt luigi@FreeBSD.org
|