Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Apr 2005 15:53:45 +0800
From:      David Xu <davidxu@freebsd.org>
To:        Scott Long <scottl@samsco.org>
Cc:        Jiawei Ye <leafy7382@gmail.com>
Subject:   Re: How does one know how many thread a process owns?
Message-ID:  <425CD009.6040208@freebsd.org>
In-Reply-To: <425CC7F8.3030803@samsco.org>
References:  <c21e92e20504122232f568545@mail.gmail.com> <425CC7F8.3030803@samsco.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Scott Long wrote:

> Jiawei Ye wrote:
>
>>> From top in pkgsrc, one can know that a certain process has some
>>
>> number of LWP in it.
>> load averages:  1.89,  1.72,  1.68;  up 
>> 119+05:28:10                   13:30:48
>> 154 processes: 152 sleeping, 1 running, 1 on cpu
>> CPU states:     % idle,     % user,     % kernel,     % iowait,     % 
>> swap
>> Memory: 1024M real, 414M free, 841M swap in use, 1956M swap free
>>
>>    PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
>>  21891 bond       1   4    2   19M 1864K run     31.7H 77.04% 
>> upd_twd_15min
>>  17153 bond       1  50    2   82M 6164K sleep   37:37 12.98% 
>> dataserver.tsk
>>  17151 bond       1  53    2   82M   81M sleep   41:57  0.96% 
>> dataserver.tsk
>>  13742 otc        1  53    2   30M   21M sleep    3:31  0.89% 
>> dataserver.tsk
>>  17204 mtrs       1  53    2   82M 6144K sleep    2:47  0.67% 
>> dataserver.tsk
>>  17321 mtrs       1  53    2   25M 7908K sleep    2:21  0.49% otcmgr.tsk
>>  16250 root       1  59    0 4136K 2224K sleep    0:00  0.47% sshd
>>  13745 otc        1  53    2   30M 2496K sleep    2:55  0.36% 
>> dataserver.tsk
>>   3821 jessica    1  59    0   31M 4816K sleep    6:25  0.34% 
>> dataserver.tsk
>>  17227 bond       1  53    2   25M 7908K sleep    2:46  0.31% otcmgr.tsk
>>  17553 otc        1  53    2   17M 1208K sleep    0:46  0.18% 
>> icbc_pricing
>>  16269 leafy      1  45    0 3360K 1688K sleep    0:00  0.13% bash
>>  17202 mtrs       1  53    2   82M   19M sleep    1:08  0.12% 
>> dataserver.tsk
>>  17154 bond       1  53    2   82M 8004K sleep    0:35  0.12% 
>> dataserver.tsk
>>  13746 otc        1  53    2   30M 5136K sleep    0:37  0.11% 
>> dataserver.tsk
>>
>> In our top, show threads does not tell you how many threads exactly
>> exists in a process, is there any way to imitate the other top's
>> behaviour?
>>
>> Jiawei
>
>
> With KSE threads (the default libpthread.so library), the kernel doesn't
> know about all of the process-scope threads that are alive it only
> knows about the ones that are running currently or are blocked within
> the kernel.  These are not the same as LWP, since they are scheduled in
> userland and thus are somewhat invisible to the kernel.  There are
> various ways to set libpthread to create only process-scope threads that
> look a little more like LWP, or you can switch to the libthr.so library
> that exclusively creates 1:1 threads that are always visible to the
> kernel.
>
> Scott


I believe he wants to see total threads number in a process. add a column
to top to display total kernel threads in per-process, p_numthreads in proc
structure is what you need . :)

David Xu



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?425CD009.6040208>