The VolanoMark 10/100 loopback test was ran in order to collect SGI lockmeter data for both for the 2.4.4 and 2.4.4+MQ Scheduler kernel. The 2.4.4 MQ Scheduler patch freed up 4 of the 8 CPUs by creating per processor run queues and spinlocks thus reducing the utilization and spin time for the runqueue_lock.
From the 2.4.4 lockmeter
The (1) runqueue_lock was utilized 76.3 % and spun for 47.4 % for a total of 4.56 of the 8 CPUs.
SPINLOCKS HOLD
WAIT
UTIL CON MEAN( MAX )
MEAN( MAX )(% CPU) TOTAL NOWAIT SPIN RJECT
NAME
15.3% 5.9us( 18ms)
47us(9900us)(47.7%) 14686011 84.7% 15.3% 0.00% *TOTAL*
...
76.3% 89.2% 8.8us( 183us) 49us(1989us)(47.4%)
2392438 10.8% 89.2% 0% runqueue_lock
8.8% 91.8% 8.6us( 144us) 54us( 962us)(
6.3%) 277757 8.2% 91.8% 0%
__wake_up+0x70
0.01% 60.0% 1.2us( 92us) 19us( 259us)(0.01%)
1241 40.0% 60.0% 0% deliver_signal+0x58
0.00% 85.0% 8.6us( 30us) 53us( 248us)(0.00%)
80 15.0% 85.0% 0% process_timeout+0x14
0.01% 89.1% 3.7us( 29us) 23us( 165us)(0.00%)
523 10.9% 89.1% 0% schedule_tail+0x6c
58.3% 89.3% 9.3us( 183us) 48us(1989us)(33.7%)
1721928 10.7% 89.3% 0% schedule+0xcc
0.22% 95.9% 5.9us( 57us) 47us( 606us)(0.21%)
10145 4.1% 95.9% 0% schedule+0x49c
0.01% 56.1% 4.0us( 38us) 18us( 150us)(0.00%)
911 43.9% 56.1% 0% schedule+0x56c
0.01% 70.4% 1.9us( 27us) 21us( 179us)(0.01%)
804 29.6% 70.4% 0% setscheduler+0x80
9.0% 87.2% 6.5us( 182us) 48us( 973us)(
7.2%) 379049 12.8% 87.2% 0%
wake_up_process+0x14
From the 2.4.4+MQ Scheduler lockmeter
The (8) runqueue_locks were utilized 6.85 % and spun for 0.34 % for a total of 0.58 of the 8 CPUs.
SPINLOCKS HOLD
WAIT
UTIL CON MEAN( MAX )
MEAN( MAX )(% CPU) TOTAL NOWAIT SPIN RJECT
NAME
2.7% 1.7us( 18ms) 4.7us(3835us)( 1.6%) 13686445 97.3% 2.4% 0.30% *TOTAL*
Per CPU runqueue_lock :
8.8% 7.9% 3.8us( 23us) 3.4us(
37us)(0.08%) 281511 92.1% 7.9%
0% __wake_up+0x8c
0.01% 6.5% 0.5us( 2.6us) 4.0us( 73us)(0.00%)
1255 93.5% 6.5% 0% deliver_signal+0xa8
0.00% 10.0% 4.6us( 9.2us) 1.9us( 3.0us)(0.00%)
30 90.0% 10.0% 0% process_timeout+0x48
35.8% 2.6% 2.8us( 40us) 3.7us(
51us)(0.16%) 1583541 97.4% 2.6% 0%
schedule+0x130
0.75% 24.1% 1.7us( 38us) 0us
52363 75.9% 0% 24.1% schedule+0x530
2.8% 0% 0.2us( 834us)
0us
1490370 100% 0% 0% schedule+0xc14
0.02% 30.4% 3.8us( 13us) 3.7us( 17us)(0.00%)
602 69.6% 30.4% 0% schedule+0xc9c
0.00% 85.7% 1.2us( 2.6us) 4.1us( 5.7us)(0.00%)
7 14.3% 85.7% 0% schedule+0xcf0
0.01% 0.12% 2.1us( 7.9us) 1.6us( 1.6us)(0.00%)
818 99.9% 0.12% 0% schedule+0xe4c
0.00% 0% 0.3us( 8.4us)
0us
812 100% 0% 0% schedule_tail+0x24
0.00% 0% 4.3us( 5.4us)
0us
6 100% 0% 0% schedule_tail+0xa4
0.01% 0.25% 1.3us( 6.3us) 7.7us( 9.1us)(0.00%)
804 99.8% 0.25% 0% setscheduler+0x104
6.6% 7.4% 2.2us( 29us) 3.5us(
48us)(0.10%) 355900 92.6% 7.4%
0% wake_up_process+0x54