From owner-svn-src-user@FreeBSD.ORG Wed Jan 14 13:41:07 2009 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C5DF0106564A; Wed, 14 Jan 2009 13:41:07 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B447F8FC08; Wed, 14 Jan 2009 13:41:07 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0EDf71X044622; Wed, 14 Jan 2009 13:41:07 GMT (envelope-from luigi@svn.freebsd.org) Received: (from luigi@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0EDf7X7044620; Wed, 14 Jan 2009 13:41:07 GMT (envelope-from luigi@svn.freebsd.org) Message-Id: <200901141341.n0EDf7X7044620@svn.freebsd.org> From: Luigi Rizzo Date: Wed, 14 Jan 2009 13:41:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187218 - user/luigi/geom_sched/sbin/geom/class/sched X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jan 2009 13:41:08 -0000 Author: luigi Date: Wed Jan 14 13:41:07 2009 New Revision: 187218 URL: http://svn.freebsd.org/changeset/base/187218 Log: sync with the code in the private tree Modified: user/luigi/geom_sched/sbin/geom/class/sched/geom_sched.c user/luigi/geom_sched/sbin/geom/class/sched/gsched.8 Modified: user/luigi/geom_sched/sbin/geom/class/sched/geom_sched.c ============================================================================== --- user/luigi/geom_sched/sbin/geom/class/sched/geom_sched.c Wed Jan 14 12:55:33 2009 (r187217) +++ user/luigi/geom_sched/sbin/geom/class/sched/geom_sched.c Wed Jan 14 13:41:07 2009 (r187218) @@ -37,31 +37,46 @@ uint32_t lib_version = G_LIB_VERSION; uint32_t version = G_SCHED_VERSION; -static char sched[] = "as"; +/* + * storage for parameters used by this geom class. + * Right now only the scheduler name is used. + */ +static char sched[] = "rr"; /* default scheduler */ + +/* + * Adapt to differences in geom library. + * in V1 struct g_command misses gc_argname, eld, and G_BOOL is undefined + */ +#if G_LIB_VERSION == 1 +#define G_ARGNAME +#define G_TYPE_BOOL G_TYPE_NUMBER +#else +#define G_ARGNAME NULL, +#endif struct g_command class_commands[] = { { "create", G_FLAG_VERBOSE | G_FLAG_LOADKLD, NULL, { - { 's', "sched", sched, G_TYPE_STRING }, + { 'a', "sched", sched, G_TYPE_STRING }, G_OPT_SENTINEL }, - NULL, "[-v] [-s sched] dev ..." + G_ARGNAME "[-v] [-a sched_name] dev ..." }, { "configure", G_FLAG_VERBOSE, NULL, { G_OPT_SENTINEL }, - NULL, "[-v] prov ..." + G_ARGNAME "[-v] prov ..." }, { "destroy", G_FLAG_VERBOSE, NULL, { { 'f', "force", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-fv] prov ..." + G_ARGNAME "[-fv] prov ..." }, - { "reset", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, NULL, - "[-v] prov ..." + { "reset", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, + G_ARGNAME "[-v] prov ..." }, G_CMD_SENTINEL }; Modified: user/luigi/geom_sched/sbin/geom/class/sched/gsched.8 ============================================================================== --- user/luigi/geom_sched/sbin/geom/class/sched/gsched.8 Wed Jan 14 12:55:33 2009 (r187217) +++ user/luigi/geom_sched/sbin/geom/class/sched/gsched.8 Wed Jan 14 13:41:07 2009 (r187218) @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 20, 2007 +.Dd January 10, 2009 .Dt GSCHED 8 .Os .Sh NAME @@ -32,6 +32,7 @@ .Nm .Cm create .Op Fl v +.Op Fl a Ar algorithm .Ar dev ... .Nm .Cm configure @@ -50,7 +51,9 @@ .Sh DESCRIPTION The .Nm -utility changes the scheduling policy of the requests going to its providers. +utility (also callable as +.Nm geom sched ... ) +changes the scheduling policy of the requests going to its providers. By now it just uses a C-LOOK policy with a little anticipation. .Pp The first argument to @@ -59,8 +62,18 @@ indicates an action to be performed: .Bl -tag -width ".Cm configure" .It Cm create Set up a scheduling provider on the given devices. +.Ar algorithm +is the name of the scheduling algorithm used for the provider. +At the moment there are two algorithms, +.Ar as +which implements a simple form of anticipatory scheduling, +and +.Ar rr +which implements anticipatory scheduling with round robin service +among clients. +.Pp If the operation succeeds, the new provider should appear with name -.Pa /dev/ Ns Ao Ar dev Ac Ns Pa .sched . +.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. @@ -71,16 +84,7 @@ At the moment it is not used at all. Turn off the given scheduling providers. .It Cm reset Do nothing. -.It Cm list -See -.Xr geom 8 . -.It Cm status -See -.Xr geom 8 . -.It Cm load -See -.Xr geom 8 . -.It Cm unload +.It Cm list | status | load | unload See .Xr geom 8 . .El @@ -115,17 +119,23 @@ The following example shows how to creat .Pa /dev/da0 , and how to destroy it. .Bd -literal -offset indent -gsched create -v da0 -gsched destroy -v da0.nop +# load the geom_sched module +kldload geom_sched +# load some scheduler classes used by geom_sched +kldload gsched_rr gsched_as +# configure device ad0 to use scheduler 'rr' +geom sched create -s rr ad0 +# at this point you will have ad0-sched- +# remove the scheduler on the device +geom sched destroy -v ad0-sched- .Ed .Pp -.Ed .Sh SEE ALSO .Xr geom 4 , .Xr geom 8 .Sh HISTORY The .Nm -utility still has to appear, and hopefully it will never do. +utility appeared in January 2009. .Sh AUTHORS .An Fabio Checconi Aq fabio@FreeBSD.org