From owner-freebsd-hackers@FreeBSD.ORG Mon Nov 19 01:12:21 2007 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E7C4F16A417; Mon, 19 Nov 2007 01:12:21 +0000 (UTC) (envelope-from skip@menantico.com) Received: from vms173001pub.verizon.net (vms173001pub.verizon.net [206.46.173.1]) by mx1.freebsd.org (Postfix) with ESMTP id C427413C4B8; Mon, 19 Nov 2007 01:12:21 +0000 (UTC) (envelope-from skip@menantico.com) Received: from mx.menantico.com ([71.188.11.206]) by vms173001.mailsrvcs.net (Sun Java System Messaging Server 6.2-6.01 (built Apr 3 2006)) with ESMTPA id <0JRQ00GL82IPN2C2@vms173001.mailsrvcs.net>; Sun, 18 Nov 2007 16:01:37 -0600 (CST) Date: Sun, 18 Nov 2007 17:13:17 -0500 From: Skip Ford In-reply-to: <20071118205541.U97497@fledge.watson.org> To: Robert Watson Mail-followup-to: Robert Watson , "Bjoern A. Zeeb" , Yuri , freebsd-hackers@FreeBSD.org Message-id: <20071118221317.GF813@menantico.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-disposition: inline References: <20071114112304.GA835@menantico.com> <20071114121812.U2025@fledge.watson.org> <20071114132743.GB835@menantico.com> <20071116144356.S10677@fledge.watson.org> <20071116212342.GD835@menantico.com> <20071117215003.U53707@maildrop.int.zabbadoz.net> <20071117223910.GD813@menantico.com> <20071118151712.GA21185@voi.aagh.net> <20071118204743.GE813@menantico.com> <20071118205541.U97497@fledge.watson.org> User-Agent: Mutt/1.4.2.3i Cc: "Bjoern A. Zeeb" , freebsd-hackers@FreeBSD.org, Yuri Subject: Re: How to get filename of an open file descriptor X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Nov 2007 01:12:22 -0000 Robert Watson wrote: > On Sun, 18 Nov 2007, Skip Ford wrote: >> >>As for the procstat(1) code itself, I've found one bug and have two >>sugestions: >> >>1) procstat_args() doesn't use a local variable and the buffer doesn't >>get cleared between calls: >> >>$ procstat -a 797 >> PID ARGS >> 797 audacious >>$ procstat -a 795 797 >> PID ARGS >> 795 xterm -xtsessionID 11c0a80103000118536826300000007680000 >> 797 audacious essionID 11c0a80103000118536826300000007680000 >>$ >> >>Other option's functions are not similarly affected. >> >>2) I think it should handle requests for information about pid 0 instead >>of requiring at least pid 1 as it currently does. Solaris suggests >>'/proc/*' to see all processes. If we use `ps axopid=` then it aborts on >>the swapper (pid 0) immediately. >> >>3) Similarly, I think all of the sysctl(3) calls within the individual >>option functions (procstat_bin(), procstat_args(), etc.) should just go >>ahead and print the header and pid, then print any sysctl(3) error in the >>PID's row instead of erroring out. We're either about to finish executing >>anyway if that was the only pid requested, or we're moving on to another >>pid that has nothing to do with the previous pid. There's not really any >>reason to stop processing further pids. This also affects attempting to >>list all pids since it currently stops processing pids as soon as one >>doesn't exist. A global error variable could just be incremented with >>every call and returned at process exit, that way it'd still be meaningful >>for single PIDs. > > Actually, I think I've fixed all of the above in p4 with some changes > yesterday; I'll do a new code drop for you to try: > > http://www.watson.org/~robert/freebsd/20071118-procstat.tgz Yes, I like it. We must be thinking alike, which is ultimately bad news for you, I'm afraid. The bug mentioned first above is still present, and the other bug I mentioned outside of this thread also is, AFAIK. Other than those, I like it. -- Skip