Subject: Re: Slow output from 'ps'
To: Gordon Ross <gwr@mc.com>
From: Chris G Demetriou <Chris_G_Demetriou@lagavulin.pdl.cs.cmu.edu>
List: current-users
Date: 07/02/1995 00:45:18
> > The NetBSD version is going to reread things from swap each time,
> > whereas the FreeBSD version will cause other things to be rotated out
> > of the cache the first couple of times. It's a trade off of whether
> > you want to allow ps(1) to be slow, or have it affect the performance
> > of other programs, and whether or not you want procfs to be required.
>
> Many other modern systems use /proc for ps.
> Are there reasons NetBSD should not do that?
>
> I generaly like getting away from any use of the old (crufty)
> trick of opening /dev/kmem or /dev/mem and snooping around.
> The /proc fs alternative seems nice an clean by comparison.
I have several comments on this:
(1) no matter what you do, you need to keep the current
interface (or an equivalent one) in place, along with
99% of the code to dig things out of /dev/mem and
/dev/kmem.
(2) making procfs mandatory adds bloat to the kernel.
(3) if procfs _doesn't_ grovel through /dev/mem (i.e.,
if it actually pages in swapped out processes, paged
out args lists, etc.) then you're going to be paging
an awful lot of 'useless' (to the system; by virtue of
the fact that it's been paged out) data in, and also
paging a lot of 'useful' data out. If this doesn't
happen, 'ps' gets no faster. If it _does_ happen,
then 'ps' is capable of hoarding system resources.
I'd rather avoid the bloat in the kernel, and also make users of ps
'pay' directly for the I/O's they incur.
It's also not clear to me that the security implications of a 'useful'
procfs (i.e. one that more uids than 0 can access) have been
thorougly investigated.
cgd