From owner-freebsd-threads@FreeBSD.ORG Fri Feb 13 10:24:32 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CD90016A4CF; Fri, 13 Feb 2004 10:24:32 -0800 (PST) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8B98043D2F; Fri, 13 Feb 2004 10:24:32 -0800 (PST) (envelope-from eischen@vigrid.com) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mail.pcnet.com (8.12.10/8.12.1) with ESMTP id i1DINJfo021701; Fri, 13 Feb 2004 13:23:19 -0500 (EST) Date: Fri, 13 Feb 2004 13:23:19 -0500 (EST) From: Daniel Eischen X-Sender: eischen@pcnet5.pcnet.com To: Scott Long In-Reply-To: <20040212124357.B21291@pooker.samsco.home> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Julian Elischer cc: freebsd-threads@freebsd.org Subject: Re: Should ps -p list threads? X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Feb 2004 18:24:32 -0000 On Thu, 12 Feb 2004, Scott Long wrote: > On Thu, 12 Feb 2004, Daniel Eischen wrote: > > On Thu, 12 Feb 2004, Julian Elischer wrote: > > > > > > The origianlpatch had _H show threads and normal ps did not.. > > > I don't know why this is as it is... > > > > Because it didn't take into account other 'ps' options. Enabling > > or disabling thread info should be an option for all KERN_PROC_foo, > > not a separate option. If I were to change it, I would add > > > > #define KERN_PROC_THREADS 0x10000 > > > > to . Then allow: > > > > mib[0] = CTL_KERN; > > mib[1] = KERN_PROC; > > mib[2] = KERN_PROC_UID | KERN_PROC_THREADS; > > mib[3] = pid; > > > > ... > > > > Yeah, it's probably cleaner that way. Still, you'll have to deal with > KERN_PROC_PROC vs. KERN_PROC_ALL. Maybe just remove both and have > KERN_PROC_THREAD be a modifier for KERN_PROC_PID. Are you > willing to do the kernel work for this too? Tested and working patch at: http://people.freebsd.org/~deischen/kse/sysctl.diffs.021304 The sysctl interface doesn't work as I expected. It didn't seem to like "holey" slots, so I couldn't do: #define KERN_PROC_ALL 0 /* everything */ ... #define KERN_PROC_SV_NAME 9 /* get syscall vector name */ #define KERN_PROC_THREADS 0x10 /* include threads */ Instead I had to add separate defines for each one: #define KERN_PROC_PID_TD 10 /* by process id */ #define KERN_PROC_PGRP_TD 11 /* by process group id */ #define KERN_PROC_SESSION_TD 12 /* by session of pid */ #define KERN_PROC_TTY_TD 13 /* by controlling tty */ #define KERN_PROC_UID_TD 14 /* by effective uid */ #define KERN_PROC_RUID_TD 15 /* by real uid */ #define KERN_PROC_PROC_TD 16 /* only return procs */ -- Dan Eischen