Re: Suggested dual human/binary interface for proc/devfs

From: Andi Kleen (ak@suse.de)
Date: Sat Apr 08 2000 - 15:12:12 EST


Linus Torvalds <torvalds@transmeta.com> writes:

> On Fri, 7 Apr 2000, H. Peter Anvin wrote:
> > Alan Cox wrote:
> > >
> > > We have a numeric tree. Its called sysctl. Its trivial to export to snmp
> > > and there are people doing it as is.
> > >
> > > Of course Linus hates sysctlm so back to square 0
> > >
> >
> > Part of that is probably that sysctl (a) is very messy inside the kernel
> > and (b) there is noone really maintaining the MIBs. Would it help if I
> > volunteered to maintain the MIBs?
>
> I want the numberic crap to GO AWAY. It's stupid, it's unmaintainable, and
> I do _not_ want to have the same old "device number" problems in new
> guises.

I have a patch that removes the ``numeric crap'' in favour of a segment
based sysctl register scheme (getting rid of the fixed numbers allows
dynamic registering without the ugly global tables in sysctl.h) I'll submit
it in early 2.5. Unfortunately it still requires a small compat stub for
the old sysctl(2), because some high profile apps [especially the glibc
dynamic linker] use it.

I also added a sysctl2 that gets names and values in ASCII. This is
to allows sysctl setting for embedded application that can't afford
the cost of /proc. The ASCII setting is because I didn't like having
two sets of sysctl handlers (one for ASCII and one for binary input).
Traditionally the binary ones used to be buggy because nobody used them
(e.g. binary setting of /proc/sys/net was largely non functional for a
long time simply because nobody uses the binary interface)
Having only a single set is much cleaner.

The sysctls live all in a special segment and a walker function
adds them to a global tree. On module load the .sysctl segment of the
module is added to the tree.

One of the problems I have is that the many symbol relocations my
scheme requires in ELF segments tends to trigger binutils bugs :-/
[ld sometimes silently puts in wrong values]

-Andi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Apr 15 2000 - 21:00:11 EST