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). -- Mikolaj Golub _______________________________________________ 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"