From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752726AbbCYTAP (ORCPT ); Wed, 25 Mar 2015 15:00:15 -0400 Received: from eu-smtp-delivery-143.mimecast.com ([207.82.80.143]:55704 "EHLO eu-smtp-delivery-143.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752432AbbCYTAK convert rfc822-to-8bit (ORCPT ); Wed, 25 Mar 2015 15:00:10 -0400 X-Greylist: delayed 917 seconds by postgrey-1.27 at vger.kernel.org; Wed, 25 Mar 2015 15:00:09 EDT Message-ID: <55130220.7020700@arm.com> Date: Wed, 25 Mar 2015 18:44:48 +0000 From: Dietmar Eggemann User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Peter Zijlstra , Morten Rasmussen CC: "mingo@redhat.com" , "vincent.guittot@linaro.org" , "yuyang.du@intel.com" , "preeti@linux.vnet.ibm.com" , "mturquette@linaro.org" , "nico@linaro.org" , "rjw@rjwysocki.net" , Juri Lelli , "linux-kernel@vger.kernel.org" Subject: Re: [RFCv3 PATCH 45/48] sched: Skip cpu as lb src which has one task and capacity gte the dst cpu References: <1423074685-6336-1-git-send-email-morten.rasmussen@arm.com> <1423074685-6336-46-git-send-email-morten.rasmussen@arm.com> <20150324152723.GU23123@twins.programming.kicks-ass.net> In-Reply-To: <20150324152723.GU23123@twins.programming.kicks-ass.net> X-OriginalArrivalTime: 25 Mar 2015 18:44:48.0398 (UTC) FILETIME=[C53B0AE0:01D0672B] X-MC-Unique: KSb5MGdFRaSTlURBTMxZcg-1 Content-Type: text/plain; charset=WINDOWS-1252; format=flowed Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 24/03/15 15:27, Peter Zijlstra wrote: > On Wed, Feb 04, 2015 at 06:31:22PM +0000, Morten Rasmussen wrote: >> From: Dietmar Eggemann >> >> Skip cpu as a potential src (costliest) in case it has only one task >> running and its original capacity is greater than or equal to the >> original capacity of the dst cpu. > > Again, that's what, but is lacking a why. > You're right, the 'why' is completely missing. This is one of our heterogeneous (big.LITTLE) cpu related patches. We don't want to end up migrating this single task from a big to a little cpu, hence the use of capacity_orig_of(cpu). Our cpu topology makes sure that this rule is only active on DIE sd level. We could replace the use of capacity_orig_of(cpu) w/ capacity_of(cpu) to take big.LITTLE and RT and/or IRQ work into consideration which then would effect the MC sd level too. Will add the 'why' in the next version.