Subject: Re: CVS commit: src/sys/kern
To: Andrew Brown <atatat@atatdot.net>
From: Aymeric Vincent <vincent@labri.fr>
List: tech-kern
Date: 04/09/2004 18:19:24
Andrew Brown wrote:

> On Fri, Apr 09, 2004 at 01:51:39PM +0200, Aymeric Vincent wrote:
>>
>> This feature does not need to be in the kernel: it can be in 
>> sysctl(8).
>
> not really.  how is sysctl(8) to learn what new things are when they
> randomly appear?  and if something disappears later, only to reappear
> somewhere else (ie, at a different mib entry), how is sysctl(8) to
> know how to apply the description?

Maybe comparing suffixes of the paths is sufficient to take care of the 
fact that some variables may be added at different places in the 
hierarchy?
Besides this, the documentation can be made available in some form of 
database at the very moment the lkm is loaded, and as was suggested 
this can even be done automatically by using a new section of the 
module object.

> i'd like to point out, again, that this is an option.

As was already pointed out, "this is an option" is not an interesting 
point. It is by essence something that users will become very aware of, 
and it is thus not a feature that can just come and go depending on the 
available amount of memory of the machine and the mood or habits of the 
person compiling the kernels for it.

>         /* SYSCTL_DESCR: kern.securelevel: System security level */

Why not? I would even not mind at all to see semantically equivalent 
text appended to a man page or any other form of database, instead of 
right inside the kernel source.

Another point is that most variables are already very often 
self-documenting and unless you are going to add big descriptions the 
user will not win much. The example you give is particularly 
well-chosen in that respect.

Another thing I pointed out is that if we do this with sysctl, why not 
do it with event counters, or with filesystems (there aren't that many 
after all), or with system calls? I must say that I much more often 
need to know what a system call does than a sysctl variable. And they 
can also come and go through lkms.

The kernel is not the right place for documentation, and maybe giving 
reasons for that drowns this simple statement.

I'm sorry that I have to go; I hope I made my points clear enough.

Regards,
  Aymeric