Date: Sat, 24 Mar 2001 14:41:50 +0100 From: Anton Berezin <tobez@tobez.org> To: Adrian Chadd <adrian@FreeBSD.ORG> Cc: Robert Watson <rwatson@FreeBSD.ORG>, "Alexey V. Neyman" <avn@any.ru>, "Michael C . Wu" <keichii@peorth.iteration.net>, fs@FreeBSD.ORG, hackers@FreeBSD.ORG Subject: Re: tuning a VERY heavily (30.0) loaded s cerver Message-ID: <20010324144150.A59930@heechee.tobez.org> In-Reply-To: <20010323201103.A5828@roaming.cacheboy.net>; from adrian@FreeBSD.ORG on Fri, Mar 23, 2001 at 08:11:03PM %2B0100 References: <Pine.BSF.4.33.0103230044500.11016-100000@srv2.any> <Pine.NEB.3.96L.1010323083844.26010C-100000@fledge.watson.org> <20010323201103.A5828@roaming.cacheboy.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--k+w/mQv8wyuph6w0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Fri, Mar 23, 2001 at 08:11:03PM +0100, Adrian Chadd wrote:
> A while back I started running through the undocumented sysctls and
> documenting them. I didn't get through all of them, and the main reason
> I stopped was because there wasn't a nifty way to extract the sysctls
> short of writing a script to extract them from /usr/src.
>
> Someone did point out that you could stuff the sysctl's into an elf
> segment and only load it when needed, but I don't know much about elf.
> If someone would like to do this, I'm sure a small group of us
> (Asmodai? :-P) could walk the sysctl tree again and figure out what
> the undocumented sysctls are. :-)
Some time ago I wrote such a script and even sent it to someone; never
got any response, though.
It is pretty minimal but does the job. I believe that the only sysctls
it misses are those which use auxilliary defines to minimize the number
of parameters (like #define P1B_SYSCTL in posix4/posix4_mib.c).
FWIW, the script is attached.
Cheers,
&Anton.
--
May the tuna salad be with you.
--k+w/mQv8wyuph6w0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=sysctl_find
#! /usr/bin/perl -w
use File::Find;
use Text::ParseWords;
sub check_file
{
return unless /\.c$/ && -r;
local $/;
open SRC, "< $_"
or print( "can't open $File::Find::dir: $!"), return;
my $src = <SRC>; # memory hog
close SRC;
my @found = ($src =~ /\nSYSCTL_(\w+\([^()]+\))/sg);
return unless @found;
print "$File::Find::dir/$_:\n";
for (@found) {
tr/\n\t / /s;
my ($type) = /^(\w+)\(/;
next if $type eq "DECL";
s/^.*\(//; s/\)//;
my @args = quotewords ',', 1, $_;
#print "|@args|\n";
$args[0] =~ s/^\s*_//;
$args[0] =~ s/\s+$//;
$args[0] =~ tr/_/./;
$args[2] =~ s/^\s+//;
$args[2] =~ s/\s+$//;
print "$type\t$args[0].$args[2]\t$args[-1]\n";
}
}
find( \&check_file, '/usr/src/sys');
--k+w/mQv8wyuph6w0--
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010324144150.A59930>
