The following webrev added turbo mode observability support of the kernel part.
http://cr.opensolaris.org/~aubrey/turbo-kernel-part/
It is against [rev #8756] of pad-gate.
I almost re-write Vinay's patch, instead of implementing the ioctl() of cpudrv,
I think
kstat for observability is better.
Before I start the powertop part of turbo mode observability support, I really
appreciate
your any comments and suggestions.
Thanks,
-Aubrey
Experiment as follows:
===================
1) after my system boots:
-----------------------------------------------------------
aubrey at aubrey-power:~$ kstat -m speedstep -i 7
module: speedstep instance: 7
name: turbo class: misc
crtime 42.052402205
snaptime 80.926871283
turbo acnt 6172692478
turbo mcnt 6246417685
turbo support 1
----------------------------------------------------------
Here, we know turbo mode is supported.
mcnt: increments in proportion to a fixed frequency when in P0
acnt: increments in proportion to actual performance when in P0.
2) now bind a while(1) process to processor 7.
------------------------------------------------------------
aubrey at aubrey-power:~$ pfexec pbind -b 7 480
process id 480: was not bound, now 7
------------------------------------------------------------
3) let while(1) run for several minutes
4) check turbo info again
------------------------------------------------------------
aubrey at aubrey-power:~$ kstat -m speedstep -i 7
module: speedstep instance: 7
name: turbo class: misc
crtime 42.052402205
snaptime 540.775843325
turbo acnt 1108972992925
turbo mcnt 1062698922865
turbo support 1
------------------------------------------------------------
It looks like turbo took effect. acnt/mcnt shows 4% performance boost.