Date: Fri, 25 Jan 2013 15:31:43 -0500 From: John Baldwin <jhb@freebsd.org> To: "Robert N. M. Watson" <rwatson@freebsd.org> Cc: Mikolaj Golub <trociny@freebsd.org>, Stanislav Sedov <stas@freebsd.org>, freebsd-hackers@freebsd.org Subject: Re: libprocstat(3): retrieve process command line args and environment Message-ID: <201301251531.43540.jhb@freebsd.org> In-Reply-To: <CA642C26-98E1-40CC-A415-8C53F47E2281@freebsd.org> References: <20130119151253.GB88025@gmail.com> <201301241120.52054.jhb@freebsd.org> <CA642C26-98E1-40CC-A415-8C53F47E2281@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday, January 25, 2013 1:37:45 pm Robert N. M. Watson wrote: > > On 24 Jan 2013, at 16:20, John Baldwin wrote: > > >>> Hmm, are you going to rewrite ps(1) to use libprocstat? Or rather, is that a > >>> goal someday? That is one current consumer of kvm_getargv/envv. That might > >>> be fine if we want to make more tools use libprocstat instead of using libkvm > >>> directly. > >> > >> I didn't have any plans for ps(1) :-) That is why I wrote about "new > >> code". But if you think it is good to do I might look at it one day... > > > > I'm mostly hoping Robert chimes in to see if that was his intention for > > libprocstat. :) If we can ultimately replace all uses of kvm_get*v() with > > calls to procstat_get*v*() then I'm fine with some code duplication in the > > interim. > > > Originally there was just proctstat(1), but it made sense to begin re- encapsulating it in a libprocstat(3) because the code there is potentially extremely reusable. This conflicts a bit with libkvm(3), which mysteriously knows about sysctlbyname(3) despite a name suggesting otherwise. You can imagine various approaches to fixing this, but indeed, making libprocstat(3) the first-class citizen and preferring it for both kvm and sysctl methods sounds like the way to go. I actually want to make libprocstat also support snmp, but I've never actually found the time to investigate doing that. One of my main unmet goals for procstat(1) was to introduce an extremely machine- readable output format for it -- e.g., something XML-based or similar. I'd still love to see that happen. BTW, one off-ball thought I have is that I would like to have a mode where libprocstat operates on a core file (of a process, not a kernel crash dump), so it could list the threads from a core dump, and possibly file descriptor info (if PR kern/173723 is implemented). We certainly could have a 'raw' mode where it spat out name: value or XML of the entire kinfo_proc perhaps. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301251531.43540.jhb>