Changeset View
Changeset View
Standalone View
Standalone View
head/lib/geom/sched/gsched.8
Property | Old Value | New Value |
---|---|---|
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
.\" 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 |