Skip site navigation (1)Skip section navigation (2)
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>
References:  <20140627091459.GA50710@onelab2.iet.unipi.it>

next in thread | previous in thread | raw e-mail | index | archive | help
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
luigi



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.11.1406271125540.11883>