[PATCH v8 08/10] sched: add SD_PREFER_SIBLING for SMT level

Vincent Guittot vincent.guittot at linaro.org
Tue Nov 4 00:58:35 PST 2014


On 4 November 2014 04:21, Wanpeng Li <kernellwp at gmail.com> wrote:
> Hi Vincent,
> On 14/10/31 下午4:47, Vincent Guittot wrote:
>>
>> Add the SD_PREFER_SIBLING flag for SMT level in order to ensure that
>> the scheduler will put at least 1 task per core.
>
>
> What's the behavior before this patch?

Before this patch, the capacity_factor was 1 at core level (whatever
the number of CPUs in the core) so the group that represents this core
was overloaded as soon as more than 1 task was running on this group.
So if a core has 2 tasks running in its group, it is seen as
overloaded and the scheduler will try to migrate 1 task on a group
that is idle

Regards,
Vincent

>
> Regards,
> Wanpeng Li
>
>
>>
>> Signed-off-by: Vincent Guittot <vincent.guittot at linaro.org>
>> Reviewed-by: Preeti U. Murthy <preeti at linux.vnet.ibm.com>
>> ---
>>   kernel/sched/core.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
>> index 37fb92c..731f2ad 100644
>> --- a/kernel/sched/core.c
>> +++ b/kernel/sched/core.c
>> @@ -6165,6 +6165,7 @@ sd_init(struct sched_domain_topology_level *tl, int
>> cpu)
>>          */
>>         if (sd->flags & SD_SHARE_CPUCAPACITY) {
>> +               sd->flags |= SD_PREFER_SIBLING;
>>                 sd->imbalance_pct = 110;
>>                 sd->smt_gain = 1178; /* ~15% */
>>
>
>



More information about the linux-arm-kernel mailing list