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>

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
luigi


home | help

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