Kernel variables - where is TFM?

Nickolay A. Kritsky nkritsky at star.spb.ru
Wed Apr 16 08:11:10 PDT 2003


Hello Igor,

Wednesday, April 16, 2003, 4:14:06 PM, you wrote:

<skipped>
>> IP> sysctl -a | grep hz
>> On my 4.6 system it gives me:
>> kern.clockrate: { hz = 100, tick = 10000, tickadj = 5, profhz = 1024, stathz = 128 }
>> What does that mean? hz is the IRQ0 frequency? Then, what is tick? and
>> what is ticks (note the trailing `s') ?

IP> Where did you find 'ticks'?

in /usr/src/sys/netinet/tcp_syncache.c it is mentioned quite often.
As I understood it is some sort of counter incremented tickly. From
Epoch or from uptime, I don't know.

>>From /usr/include/sys/time.h :

IP> -- snip --
IP> /*
IP>  * Getkerninfo clock information structure
IP>  */
IP> struct clockinfo {
IP>         int     hz;             /* clock frequency */
IP>         int     tick;           /* micro-seconds per hz tick */
IP>         int     tickadj;        /* clock skew rate for adjtime() */
IP>         int     stathz;         /* statistics clock frequency */
IP>         int     profhz;         /* profiling clock frequency */
IP> };
IP> -- snip --

Hmm. Looks funny. Why keep both hz and tick if tick=(10^6)/hz ? Or am i
missing something?

>> IP> sysctl(8)
>> sysctl. Well, this is great, but here comes another question:
>> in /usr/src/sys/netinet/tcp_syncache_c one can see:
>> ;-----------------Begin clipboard--------------------------
>> SYSCTL_INT(_net_inet_tcp, OID_AUTO, syncookies, CTLFLAG_RW,
>>     &tcp_syncookies, 0, 
>>     "Use TCP SYN cookies if the syncache overflows");
>> ;-------------------End clipboard--------------------------
>> Is it the place where sysctl is added to kernel state MIB? If yes, I
>> assume that every sysctl can have a `description' (the last parameter
>> in SYSCTL_INT macro). Is there an interface to read such descriptions?

IP> The only place where you can see all descriptions AFAIK is
IP> sysctl(3) (note '3', not '8')
Still cant find it.
sysctl() - get or set value of state.
sysctlbyname() - find variable by name.
sysctlnametomib() - find array of variables by name.

Looks like the only interface to look up sysctl description is grep(1)
:-\

-- 
Best regards,
;  Nickolay A. Kritsky
; SysAdmin STAR SPb
; mailto:nkritsky at star.spb.ru




More information about the freebsd-hackers mailing list