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

Reply via email to