Subject: Re: vmstat and netstat....
To: Nathan J. Williams <nathanw@wasabisystems.com>
From: Garrett D'Amore <garrett_damore@tadpole.com>
List: tech-kern
Date: 03/27/2006 08:18:20
Nathan J. Williams wrote:
> "Garrett D'Amore" <garrett_damore@tadpole.com> writes:
>
>
>> Try vmstat -e.
>>
>
> # ls /netbsd
> /netbsd
> # vmstat -e
> event total rate type
> uvmmap ubackmerge 34018725 8 misc
> uvmmap uforwmerge 1 0 misc
> uvmmap unomerge 36630956 8 misc
> uvmmap kbackmerge 536684 0 misc
> .....
>
> # mv /netbsd /netbsd.foo
> # vmstat -e
> event total rate type
> uvmmap ubackmerge 34018728 8 misc
> uvmmap uforwmerge 1 0 misc
> uvmmap unomerge 36630988 8 misc
> uvmmap kbackmerge 536684 0 misc
> ......
>
> "Looks good to me".
>
> Do you have an actual example that fails on an actual system, or a
> path through the code that clearly won't work in the absence of the
> kernel binary?
>
> - Nathan
>
Hmm... maybe the problem isn't in vmstat, per se, but in libkvm.
# mv /netbsd /netbsd.foo
# vmstat -e
vmstat: undefined symbols: _intrnames _eintrnames _intrcnt _eintrcnt _bucket
On evbmips:
cabernet# vmstat -e
vmstat: kvm_openfiles: /netbsd: No such file or directory
But now looking, it looks like the attempt to open /dev/ksyms on evbmips
at least returned ENXIO. So maybe I need to enable ksyms.
By the way, ksyms is *also* a big size growth (though not as much as a
whole kernel). I'd rather have a sysctl consumer than have to allocate
space in my kernel for a kernel symbol table. (Again, this is because
I'm operating in situations with tight ram constraints -- 8MB ram, and
similar sized flash.)
--
Garrett D'Amore, Principal Software Engineer
Tadpole Computer / Computing Technologies Division,
General Dynamics C4 Systems
http://www.tadpolecomputer.com/
Phone: 951 325-2134 Fax: 951 325-2191