Re: GNUstep and libkvm

From: Doug White <dwhite_at_gumbysoft.com>
Date: Mon, 21 Feb 2005 19:17:35 -0800 (PST)
On Sun, 20 Feb 2005, Pascal Hofstee wrote:

> A while ago i initiated a thread on hackers_at_ requesting additional
> information regarding a known issue with the gnustep-gui port "needing
> /proc" even when gnustep-base itself (which in turn is used by -gui)
> was compiled without procfs support.
>
> The results of my findings can be found in the following list-archive entries:
>
> http://www.mail-archive.com/freebsd-hackers_at_freebsd.org/msg49357.html
> http://www.mail-archive.com/freebsd-hackers_at_freebsd.org/msg49577.html
>
> Short summary is the kvm_getargv function seems to trigger a kvm_uread
> call when the length of "command + argumentlist" exceeds the value of
> kern.ps_arg_cache_limit.
>
> This kvm_uread call is responsible for the observed /proc groveling.
> I had hoped to acquire some additional information on how to properlly
> debug libkvm in GDB and if this /proc dependency is intended behavior.

You could just read the code :-)  libkvm is a userspace library, source is
in src/lib/libkvm.

> To me personally (though i am not a kernel hacker) it doens't really
> make sense to have libkvm (which is intended to be a 'replacement' for
> /proc to my understanding)  intenrally depend on the same system it's
> trying to 'replace', though I noticed from the manpages that the
> kvm_getargv function doesn't really belong in libkvm.

libkvm is actually "legacy"; /proc came after it, but we've been moving
away from requiring procfs since its skilled at opening security holes.
libkvm originally needed to grovel in /dev/kmem and much of that has
migrated to using special-purpose sysctls.

> Can anybody at least either confirm wether or not this is
> - intended behavior
> - a bug and a proper PR should likely be created

ps(1) sets up some flags to avoid needing it on -CURRENT and RELENG_5; you
might reference that for how to use the sysctl to read the ps information.
There is some information that is only available via /proc, though; the
process environment is an easy example (and ps throws an error if you
specify -e and procfs isn't available).

-- 
Doug White                    |  FreeBSD: The Power to Serve
dwhite_at_gumbysoft.com          |  www.FreeBSD.org
Received on Tue Feb 22 2005 - 02:17:35 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:28 UTC