From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750967AbdHREvh (ORCPT ); Fri, 18 Aug 2017 00:51:37 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:35787 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750718AbdHREvg (ORCPT ); Fri, 18 Aug 2017 00:51:36 -0400 MIME-Version: 1.0 In-Reply-To: <20170818012555.GY20323@X58A-UD3R> References: <1502077834-11137-1-git-send-email-byungchul.park@lge.com> <20170818012555.GY20323@X58A-UD3R> From: "Joel Fernandes (Google)" Date: Thu, 17 Aug 2017 21:51:34 -0700 Message-ID: Subject: Re: [PATCH v6 0/2] Make find_later_rq() choose a closer cpu in topology To: Byungchul Park Cc: Peter Zijlstra , mingo@kernel.org, Linux Kernel Mailing List , juri.lelli@gmail.com, rostedt@goodmis.org, kernel-team@lge.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Aug 17, 2017 at 6:25 PM, Byungchul Park wrote: > On Mon, Aug 07, 2017 at 12:50:32PM +0900, Byungchul Park wrote: >> When cpudl_find() returns any among free_cpus, the cpu might not be >> closer than others, considering sched domain. For example: >> >> this_cpu: 15 >> free_cpus: 0, 1,..., 14 (== later_mask) >> best_cpu: 0 >> >> topology: >> >> 0 --+ >> +--+ >> 1 --+ | >> +-- ... --+ >> 2 --+ | | >> +--+ | >> 3 --+ | >> >> ... ... >> >> 12 --+ | >> +--+ | >> 13 --+ | | >> +-- ... -+ >> 14 --+ | >> +--+ >> 15 --+ >> >> In this case, it would be best to select 14 since it's a free cpu and >> closest to 15(this_cpu). However, currently the code select 0(best_cpu) >> even though that's just any among free_cpus. Fix it. > > Could you let me know your opinions about this? Patch looks good to me, I would also add a comment ontop of fallback_cpu (I think Steve mentioned similar thing at [1]) /* * fallback is the closest CPU in the closest SD incase * all domains are PREFER_SIBLING */ if (fallback_cpu == -1) fallback_cpu = best_cpu; And clarify this in the commit message. thanks, -Joel [1] https://patchwork.kernel.org/patch/9884383/ > >> Change from v5 >> -. exclude two patches already picked up by peterz >> (sched/deadline: Make find_later_rq() choose a closer cpu in topology) >> (sched/deadline: Change return value of cpudl_find()) >> -. apply what peterz fixed for 'prefer sibling', into deadline and rt >> >> Change from v4 >> -. remove a patch that might cause huge lock contention >> (by spin lock(&cpudl.lock) in a hot path of scheduler) >> >> Change from v3 >> -. rename closest_cpu to best_cpu so that it align with rt >> -. protect referring cpudl.elements with cpudl.lock >> -. change return value of cpudl_find() to bool >> >> Change from v2 >> -. add support for SD_PREFER_SIBLING >> >> Change from v1 >> -. clean up the patch >> >> Byungchul Park (2): >> sched/deadline: Add support for SD_PREFER_SIBLING on find_later_rq() >> sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() >> >> kernel/sched/deadline.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- >> kernel/sched/rt.c | 47 ++++++++++++++++++++++++++++++++++++++++++++--- >> 2 files changed, 87 insertions(+), 6 deletions(-) >> >> -- >> 1.9.1