On 11/04/08 17:07, bugzilla-daemon at defect.opensolaris.org wrote:
> http://defect.opensolaris.org/bz/show_bug.cgi?id=4343
>
>
>
>
>
> --- Comment #6 from Aubrey.Li <aubrey.li at intel.com>  2008-11-04 17:07:28 
> ---
> (In reply to comment #4)
>   
>>> When the policy is CMT_COALESCE, we want core level first and then package
>>> level. 
>>>       
>> Well, we coalesce the load onto a small number of packages...and then within
>> each package we coalesce onto a small number of cores...
>>
>>     
>
> Well, the everything sounds reasonable except this. Assuming there is a 
> package
> like the following:
>
>              package0
>                  |
>             -----------
>             |          |
>            core0      core1
>             |          |
>           -----      ------
>          |     |     |     |
>         T0     T1    T2    T3
>
> As for C-state, if T0 is in C2 while T1 is in C3, core0 will be in C2.
> The dependency is at the core level. And if all cores are in deep C-state,
> the core could be in enhanced deep C-state.
>
> When a thread is running on T0, while T1, T2 and T3 are idle, at this time if 
> a
> new thread need to be dispatched, if we dispatch it onto the package first, it
> could be coalesced onto T2, then we'll lost the chance to let core sleep 
> deeper
> on both Core0 and Core1.
>   
> So it'd better if T0 is running, we dispatch the new thread onto T1, so that
> the core1 could sleep longer and deeper.
>   

Yes.  In this example the new thread should be dispatched on T1.
Once package0 is chosen, coalesce will happen at the core level.
core0 should be chosen before core1 because T0 is not idle but
T2 & T3 are both idle.  It makes more sense when Eric walks
through it with diagrams on the white board.  ;-)

Regards,
Bill
> Hope this make sense



Reply via email to