From owner-freebsd-current@FreeBSD.ORG Mon Dec 3 09:35:33 2007 Return-Path: Delivered-To: current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B314016A418; Mon, 3 Dec 2007 09:35:33 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from heff.fud.org.nz (203-109-251-39.static.bliink.ihug.co.nz [203.109.251.39]) by mx1.freebsd.org (Postfix) with ESMTP id 590DC13C442; Mon, 3 Dec 2007 09:35:33 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: by heff.fud.org.nz (Postfix, from userid 1001) id 947877E98; Mon, 3 Dec 2007 22:35:31 +1300 (NZDT) Date: Mon, 3 Dec 2007 22:35:31 +1300 From: Andrew Thompson To: Robert Watson Message-ID: <20071203093531.GA31649@heff.fud.org.nz> References: <20071202233435.G74097@fledge.watson.org> <20071203032422.GC30756@heff.fud.org.nz> <20071203090800.U74097@fledge.watson.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20071203090800.U74097@fledge.watson.org> User-Agent: Mutt/1.5.16 (2007-06-09) Cc: hackers@FreeBSD.org, current@FreeBSD.org Subject: Re: procstat(1) committed to CVS HEAD X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2007 09:35:33 -0000 On Mon, Dec 03, 2007 at 09:10:27AM +0000, Robert Watson wrote: > > On Mon, 3 Dec 2007, Andrew Thompson wrote: > >> On Sun, Dec 02, 2007 at 11:38:45PM +0000, Robert Watson wrote: >>> >>> Dear all, (and FYI to hackers@ where I previousl sought feedback): >>> >>> I've now committed procstat(1) to CVS. I've found it to be quite a >>> helpful debugging tool, am particularly pleased with -k/-kk, and would >>> welcome feedback and ideas on further improving it. >> >> I would like to give some feedback. I listed the threads of proc 12 which >> is intr, >> >> # procstat -t 12 >> PID TID COMM CPU PRI STATE WCHAN >> 12 100003 intr 0 40 wait - >> 12 100004 intr 0 52 wait - >> 12 100030 intr 0 16 wait - >> [...] >> 12 100036 intr 0 36 wait - >> 12 100037 intr 0 24 wait - >> >> I had expected it to show the thread name such as 'irq14: ata0', is this >> possible (and a good thing to do)? > > I just print out the 'comm' field returned by the generic sysctl, and I > notice that top(1) with -S is now having the same problem as procstat(1). > I think this is a kernel bug in how we initialize or otherwise handle > thread names, and fairly recent, as it's not present on my 7.0BETA2 box. > If I had to guess, it's that these are now 'true threads' under the single > 'intr' proc, and that we're not exporting the thread name? Changing to ki_ocomm gets the desired result for single and multithreaded processes. Andrew Index: procstat_threads.c =================================================================== RCS file: /home/ncvs/src/usr.bin/procstat/procstat_threads.c,v retrieving revision 1.1 diff -u -p -r1.1 procstat_threads.c --- procstat_threads.c 2 Dec 2007 23:31:45 -0000 1.1 +++ procstat_threads.c 3 Dec 2007 06:06:46 -0000 @@ -82,8 +82,8 @@ procstat_threads(pid_t pid, struct kinfo kipp = &kip[i]; printf("%5d ", pid); printf("%6d ", kipp->ki_tid); - printf("%-20s ", strlen(kipp->ki_comm) ? - kipp->ki_comm : "-"); + printf("%-20s ", strlen(kipp->ki_ocomm) ? + kipp->ki_ocomm : "-"); if (kipp->ki_oncpu != 255) printf("%3d ", kipp->ki_oncpu); else if (kipp->ki_lastcpu != 255)