On Wednesday, January 23, 2013 2:25:00 am Mikolaj Golub wrote:
> On Tue, Jan 22, 2013 at 02:17:39PM -0800, Stanislav Sedov wrote:
> > 
> > On Jan 22, 2013, at 1:48 PM, John Baldwin <j...@freebsd.org> wrote:
> > > 
> > > Well, you could make procstat open a kvm handle in both cases (open a 
> > > "live" 
> > > handle in the procstat_open_sysctl() case).  It just seems rather silly 
> > > to be 
> > > duplicating code in the two interfaces.
> 
> In this particular case I prefer code duplication to opening a kvm
> handle in procstat_open_sysctl(), as it looks a bit confusing. But I
> can do this way if the agreement is reached.
> 
> > > More a question for Robert: does 
> > > libprocstat intentionally duplicate the code in libkvm for other things 
> > > as 
> > > well in the live case?  (Like fetching the list of processes?)
> > > 
> > It does not actually has a duplicate code, the code for fetching the list of
> > processes via sysctl is different from the KVM case.  The open file 
> > descriptors
> > processing is different as well.  Because libprocstat implements almost the
> > same functionality both for sysctl and mvm backends, it can be used to 
> > analyze
> > both the live system and the kernel crash dumps.  The code Mikolaj proposed
> > only implements the sysctl backend currently, so it does not seem to have
> > any relation to KVM, so it will be a bit weird to make it open a KVM handle
> > though it does not use it.
> 
> IMHO, after adding procstat_getargv and procstat_getargv, the usage of
> kvm_getargv() and kvm_getenvv() (at least in the new code) may be
> deprecated. As this is stated in the man page, BUGS section, "these
> routines do not belong in the kvm interface". I suppose they are part
> of libkvm because there was no a better place for them. procstat(1)
> prefers direct sysctl to them (so, again, code duplication, which I am
> going to remove adding procstat_getargv/envv).

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.

-- 
John Baldwin
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to