Shreyas wrote:
Hello all,
I face a similar problem of un-utilized CPUs.
I have a Intel Xeon 2.66GHz, with 8 CPU cores. The machine has Opensolaris
build 48. I am using a 10 Gig card, whose driver I have written, to run iperf
at full blast.
I see that utilization of one of the CPUs is 80-100% where as rest of them stay
idle at 0-3 %. Earlier I thought, this was due to locking in my driver code. I
modified the driver code to reduce time under locking to a great extent. I used
'lockstat -o output_file sleep 20' to verify this. But this did not improve
the situation atall. The mpstat looks like following :
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 0 0 0 1388 220 102 0 2 52 0 79 0 3 0 97
1 13 0 0 1079 0 76 0 1 7 0 111 0 1 0 99
2 0 0 0 1042 0 4 0 2 0 0 0 0 1 0 99
3 0 0 0 1054 4 0 0 0 0 0 0 0 0 0 100
4 0 0 6146 207 0 70 0 1 316 0 10 0 2 0 98
5 0 0 0 1068 3 30 0 2 0 0 0 0 0 0 100
6 0 0 1036 917 2 58 1 2 476 0 65 0 6 0 94
7 0 0 161 62340 61308 6363 2139 1 2442 0 530 0 99 0 1
CPU(7) has 99% utilization. The throughput of iperf increases greatly when more
CPUs are utilized.
Hmm.
What does lockstat(1M) tell you? In this case, it would probably be
useful both as a way to confirm
your hunch that lock contention is/was a performance issue, and also as
a way determine where in the kernel
CPU 7 is spending 99% (!!) of it's time (via profiling ala lockstat -I).
-Eric
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org