Re: procstat(1) committed to CVS HEAD

From: Julian Elischer <julian_at_elischer.org>
Date: Mon, 03 Dec 2007 09:09:53 -0800
Robert Watson wrote:
> 
> On Mon, 3 Dec 2007, Andrew Thompson wrote:
> 
>>>> 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.
> 
> I wonder if we should be renaming ki_ocomm to ki_tdcomm or ki_tdname?

we probably should now, originally there was still a used fo it somewhere
but I think it's probably been fixed by now (that was many years ago).


ki_tdname woudl be best.

or better still, make a scheme where we actually returned thread 
info separate from process info.

> 
> Robert N M Watson
> Computer Laboratory
> University of Cambridge
> 
>>
>>
>> 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
>> _at__at_ -82,8 +82,8 _at__at_ 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)
>>
>>
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
Received on Mon Dec 03 2007 - 16:09:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:23 UTC