disp_getwork() is a kernel function that gets called from the idle loop
(dispatcher - go get work, meaning find me a runnable thread).
(usermode) simply means that the CPU(s) were running in usermode,
not kernel mode during the profile, and lockstat has not visibility into
what user functions where running during the sample. The best it can
do it tell you the cpus(s) were not running in the kernel.
Try;
#dtrace -n 'profile-997hz / arg0 != 0 curthread-t_pri != -1 /
@[func(arg0)] = count() }'
for a kernel profile that filters out the idle loop.
/jim
Jianhua Yang wrote:
Hello,
I collected lockstat statistics when CPU idle is less 10, see below:
Profiling interrupt: 120600 events in 5.038 seconds (23940 events/sec)
Count indv cuml rcnt nsec CPU+PILCaller
---
3430 3% 3% 0.00 1225 cpu[3]+11 disp_getwork
3378 3% 6% 0.00 1429 cpu[512]+11disp_getwork
3319 3% 8% 0.00 1254 cpu[515]+11disp_getwork
1407 1% 61% 0.00 1238 cpu[11](usermode)
972 1% 62% 0.00 2664 cpu[18](usermode)
953 1% 63% 0.00 833 cpu[528] (usermode)
question:
1. what is disp_getwork ?I guess this function comes from shced
? if trace sched procss functions,
say 5 seconds, what is overhead of performance?
2. caller = (usermode), what is usermode mean here ? why did it not
trace out the functions ?
Thanks,
James Yang
---
This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.
___
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org
___
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org