http://defect.opensolaris.org/bz/show_bug.cgi?id=6232
--- Comment #4 from Eric Saxe <eric.saxe at sun.com> 2009-02-13 15:40:26 --- (In reply to comment #0) > Hi -- > > My comments are below :- > > - When PAD is enabled (event mode), where and how do we adjust P-states > depending upon the CPU consumption/utilization? This should help laptops > operating on battery. OR is it still done by cpu module in poll mode? In event based mode...the CPU module doesn't poll. P-state changes are driven by changes in CPU utilization of the P-state domain that the dispatcher tracks as part of it's broader CMT scheduling efforts. > usr/src/uts/common/disp/disp.c > - I think extra overhead of 'for loop' (depending upon the group > size) in pg_ev_thread_remain()/pg_ev_thread_swtch() can cause > performance degradation in context switch path. It is also not so > obvious as to why we need these callbacks during swtch(). The iteration performed there is actually not new. In the current gate, PG_NRUN_UPDATE() invokes a function, pg_cmt_load() that walks the CPU's processor groups, adjusting the load in each of them when the CPU transitions between busy <=> idle. These callbacks replace those. PAD changes this in the sense that rather than walking the CPU's group of CMT PGs, and adjusting the load in each of them, it instead walks the PGs and invokes a function pointer, which (depending on the PG), may just adjust the load in that PG, or (in the case of power domains) may call into the CPU power manager. In the case where the thread is remaining on the CPU, there is an extra loop traversal that wasn't there previously, so that the power manager can be notified when a thread has reached the end of it's time quantum. It might be possible to make this more efficient since only the power related PGs do anything with this one...although that will definitely change down the road. -- Configure bugmail: http://defect.opensolaris.org/bz/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
