Date: Fri, 27 Jun 2014 11:27:56 +0200 (CEST) From: =?ISO-8859-1?Q?Trond_Endrest=F8l?= <Trond.Endrestol@fagskolen.gjovik.no> To: Luigi Rizzo <rizzo@iet.unipi.it> Cc: current@freebsd.org Subject: Re: do we have a generic string-number sysctl mapping library ? Message-ID: <alpine.BSF.2.11.1406271125540.11883@mail.fig.ol.no> In-Reply-To: <20140627091459.GA50710@onelab2.iet.unipi.it>
index | next in thread | previous in thread | raw e-mail
On Fri, 27 Jun 2014 11:14+0200, Luigi Rizzo wrote: > Hi, > I have frequently found myself using sysctls to control some kernel > feature where a string would be a better (and sometimes the only) > option than using a numeric value, yet the internal representation > should be numeric for speed and robustness. > Examples are the kern.timecounter, the default scheduler in dummynet, > and now in netmap the selection between native and emulated mode. > I am sure many of you can come up with other cases. > > I wonder if we have some support for that already in the sysctl code, > or i should build a generic one next time i need to do that. In C, according to sysctl(3) you could use sysctlnametomib(). I might have misinterpreted the problem domain. > Feel free to criticise the approach and suggest better ones. > Right now i am using sysctls because i have a set of macros > and wrapper functions that let me convert them to sysfs > entries when building kernel code on linux, so I have a > portable solutions. > > For the details, I'd like to have a mechanism that requires the > kernel programmer supply a (possibly extensible) table of > supported values, and matching constants to be used within > the kernel. A single declaration should generate entries > to get/set the current value as well as list options. > We can discuss frills (such as wildcards, multiple values,etc). > > cheers > luigi -- +-------------------------------+------------------------------------+ | Vennlig hilsen, | Best regards, | | Trond Endrestøl, | Trond Endrestøl, | | IT-ansvarlig, | System administrator, | | Fagskolen Innlandet, | Gjøvik Technical College, Norway, | | tlf. mob. 952 62 567, | Cellular...: +47 952 62 567, | | sentralbord 61 14 54 00. | Switchboard: +47 61 14 54 00. | +-------------------------------+------------------------------------+ From owner-freebsd-current@FreeBSD.ORG Fri Jun 27 09:47:05 2014 Return-Path: <owner-freebsd-current@FreeBSD.ORG> Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E9F83AEF for <current@freebsd.org>; Fri, 27 Jun 2014 09:47:05 +0000 (UTC) Received: from onelab2.iet.unipi.it (onelab2.iet.unipi.it [131.114.59.238]) by mx1.freebsd.org (Postfix) with ESMTP id ABE10288F for <current@freebsd.org>; Fri, 27 Jun 2014 09:47:05 +0000 (UTC) Received: by onelab2.iet.unipi.it (Postfix, from userid 275) id ED5837300A; Fri, 27 Jun 2014 11:50:29 +0200 (CEST) Date: Fri, 27 Jun 2014 11:50:29 +0200 From: Luigi Rizzo <rizzo@iet.unipi.it> To: Trond Endrest?l <Trond.Endrestol@fagskolen.gjovik.no> Subject: Re: do we have a generic string-number sysctl mapping library ? Message-ID: <20140627095029.GF50710@onelab2.iet.unipi.it> References: <20140627091459.GA50710@onelab2.iet.unipi.it> <alpine.BSF.2.11.1406271125540.11883@mail.fig.ol.no> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <alpine.BSF.2.11.1406271125540.11883@mail.fig.ol.no> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: current@freebsd.org X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Discussions about the use of FreeBSD-current <freebsd-current.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/options/freebsd-current>, <mailto:freebsd-current-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/freebsd-current/> List-Post: <mailto:freebsd-current@freebsd.org> List-Help: <mailto:freebsd-current-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-current>, <mailto:freebsd-current-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 27 Jun 2014 09:47:06 -0000 On Fri, Jun 27, 2014 at 11:27:56AM +0200, Trond Endrest?l wrote: > On Fri, 27 Jun 2014 11:14+0200, Luigi Rizzo wrote: > > > Hi, > > I have frequently found myself using sysctls to control some kernel > > feature where a string would be a better (and sometimes the only) > > option than using a numeric value, yet the internal representation > > should be numeric for speed and robustness. > > Examples are the kern.timecounter, the default scheduler in dummynet, > > and now in netmap the selection between native and emulated mode. > > I am sure many of you can come up with other cases. > > > > I wonder if we have some support for that already in the sysctl code, > > or i should build a generic one next time i need to do that. > > In C, according to sysctl(3) you could use sysctlnametomib(). > I might have misinterpreted the problem domain. different problem. Example below: right now i have dev.netmap.admode which can assume integer values, i do not need a special handler, and the code in the kernel uses 1, 2 or "everything else" to decide what to do (resetting "everything else" to 0 opportunistically). I want to have a generic handler that accepts a set of predefined string values (specifically "any native emulated") and converts them to integers through some user-specificed mapping so the kernel can still do the quick tests but users don't have to remember what '2' means cheers luigihome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.11.1406271125540.11883>
