Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 07 Oct 2012 10:16:40 -0600
From:      Ian Lepore <freebsd@damnhippie.dyndns.org>
To:        Luigi Rizzo <rizzo@iet.unipi.it>
Cc:        Garrett Cooper <yanegomi@gmail.com>, Adrian Chadd <adrian@freebsd.org>, current@freebsd.org
Subject:   Re: sysctl vs ifconfig vs other (was Re: sysctl-controlled key-value store ?)
Message-ID:  <1349626600.1112.30.camel@revolution.hippie.lan>
In-Reply-To: <20121007155356.GA77558@onelab2.iet.unipi.it>
References:  <20121006172834.GB63649@onelab2.iet.unipi.it> <CAFAOGNQEAJFD2YJyRFDCzW=XMJymznW3MMdmCabbCqTjobAU-g@mail.gmail.com> <20121007104330.GA75115@onelab2.iet.unipi.it> <CAJ-VmokXxuF78HTk1SbirEwS9EP1G2RX0=LLrzMP%2B16G4-cc4g@mail.gmail.com> <20121007150219.GA76853@onelab2.iet.unipi.it> <CAGH67wTBc-RWwyQQZvbW3tufEh5xLdAswPKt3X7jMz-UP0L1VQ@mail.gmail.com> <20121007155356.GA77558@onelab2.iet.unipi.it>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 2012-10-07 at 17:53 +0200, Luigi Rizzo wrote:
> Access through sysctl is incredibly easy from both userspace and
> from a C application, because all the work is done in the kernel
> side, whereas other mechanisms (ioctl, i'd rather leave kvm apart
> as we really don't want that!) require the definition of a specific
> API (ioctl, structs) _and_ some amount of wrapping code in userspace.
> 
> cheers
> luigi

A potential problem with sysctl is its "one thing at a time" nature.
When you pack up a bunch of related data into a structure and hand it
off to an implementation, that implementation can pretty easily make
sure that all the data related to the config request is sane.  If you
have to make a series of sysctl calls to achieve some complex config
task, what happens when you're 2/3 of the way through the series and a
call fails?  Who backs out the partial config that got accomplished?

If you go too far down this path you end up with something that looks a
lot like the unmitigated mess which is the SNMP control API.

-- Ian




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