Should ps -p list threads?

Craig Rodrigues rodrigc at crodrigues.org
Thu Feb 12 09:10:51 PST 2004


On Thu, Feb 12, 2004 at 11:16:57AM -0500, Daniel Eischen wrote:
> But 'ps' without -H seems to display KSEs where it shouldn't.

I looked in the source code of ps,
specifically in src/bin/ps/ps.c

If you type just 'ps', this code gets executed in ps.c:

   351         if (nuids == 1) {
   352                 what = KERN_PROC_UID;
   353                 flag = *uids;
   354         } 

   371         if ((kp = kvm_getprocs(kd, what, flag, &nentries)) == 0 || nentr
ies < 0)
   372                 errx(1, "%s", kvm_geterr(kd));



If you type 'ps -H', this code gets executed in ps.c:

194                     case 'H':
195                             showthreads = 1;
196                             break;
 
351             if (nuids == 1) {
352                     what = KERN_PROC_UID;
353                     flag = *uids;

371             if ((kp = kvm_getprocs(kd, what, flag, &nentries)) == 0 || nentries < 0)
372                     errx(1, "%s", kvm_geterr(kd));




So, I am not sure if this is a bug in kvm_getprocs() or in ps.c,
but the result is that if you type ps or ps -H, they
both display KSEs.  Probably just typing ps should not display
them.

Any idea what the problem is?
-- 
Craig Rodrigues        
http://crodrigues.org
rodrigc at crodrigues.org


More information about the freebsd-threads mailing list