LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Venkatesh Pallipadi <venki@google.com> To: svaidy@linux.vnet.ibm.com Cc: Suresh Siddha <suresh.b.siddha@intel.com>, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org, Paul Turner <pjt@google.com>, Mike Galbraith <efault@gmx.de>, Nick Piggin <npiggin@gmail.com>, Tim Chen <tim.c.chen@intel.com>, Alex Shi <alex.shi@intel.com> Subject: Re: [PATCH] sched: Wholesale removal of sd_idle logic Date: Tue, 15 Feb 2011 10:26:01 -0800 [thread overview] Message-ID: <AANLkTi=ENtUtgHYaCJqvDGYVFKyXYFcVVOOFf8-dfW=+@mail.gmail.com> (raw) In-Reply-To: <20110215170127.GA28865@dirshya.in.ibm.com> On Tue, Feb 15, 2011 at 9:01 AM, Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> wrote: > * Venkatesh Pallipadi <venki@google.com> [2011-02-14 14:38:50]: > >> sd_idle logic was introduced way back in 2005 (commit 5969fe06), >> as an HT optimization. >> >> As per the discussion in the thread here >> lkml subject - sched: Resolve sd_idle and first_idle_cpu Catch-22 - v1 >> https://patchwork.kernel.org/patch/532501/ >> >> the capacity based logic in the load balancer right now handles this >> in a much cleaner way, handling more than 2 SMT siblings etc, and sd_idle >> does not seem to bring any adiitional benefits. sd_idle logic also has >> some bugs that has performance impact. Here is the patch that removes >> the sd_idle logic altogether. >> >> The initial patch here - https://patchwork.kernel.org/patch/532501/ >> applies cleanly over the below change and provides a micro-optimization >> for a specific case, where an idle core can pull tasks instead of a >> core with one thread being idle and other thread being busy. >> It will be good to get some data on whether this micro-optimization >> matters or not. >> >> Also, there was a dependency of sched_mc_power_savings == 2, with sd_idle >> logic. Copying Vaidy to know the impact of this change there. > > Hi Venki, > > The dependency is to avoid active balancing when there is a busy > sibling and power save balance is not set. > > Another logic would propagate/force sd_idle=1 to induce more frequent > balancing for idle sibling in case of power save balance. Removing > sd_idle will make this default. > > Your changes look good. I will test and report. > >> Signed-off-by: Venkatesh Pallipadi <venki@google.com> > > Acked-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> > >> --- >> kernel/sched_fair.c | 53 ++++++++++---------------------------------------- >> 1 files changed, 11 insertions(+), 42 deletions(-) >> <snip> >> @@ -3386,10 +3363,6 @@ redo: >> sd->balance_interval *= 2; >> } >> >> - if (!ld_moved && !sd_idle && sd->flags & SD_SHARE_CPUPOWER && >> - !test_sd_parent(sd, SD_POWERSAVINGS_BALANCE)) >> - ld_moved = -1; > > I have not figured out where ld_moved is checked for -1 and why we > need to treat this as a special case. > Return value of -1 was being consumed in rebalance domains() call to load_balance(). Returning -1 (instead of 0 in this case) makes rebalance_domains() to call higher domain load balancing with CPU_NOT_IDLE, when sibling is busy and even when there was no load pulled in. Thanks, Venki > Your bug fix in idle_balance() for if (pulled_task) {...} is a good > catch. > >> - >> goto out; >> >> out_balanced: >> @@ -3403,11 +3376,7 @@ out_one_pinned: >> (sd->balance_interval < sd->max_interval)) >> sd->balance_interval *= 2; >> >> - if (!sd_idle && sd->flags & SD_SHARE_CPUPOWER && >> - !test_sd_parent(sd, SD_POWERSAVINGS_BALANCE)) >> - ld_moved = -1; >> - else >> - ld_moved = 0; > > Ack. But why did we have to flag this case earlier? > >> + ld_moved = 0; >> out: >> return ld_moved; >> } > > --Vaidy > >
next prev parent reply other threads:[~2011-02-15 18:26 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-02-04 20:51 [PATCH] sched: Resolve sd_idle and first_idle_cpu Catch-22 Venkatesh Pallipadi 2011-02-04 21:25 ` [PATCH] sched: Resolve sd_idle and first_idle_cpu Catch-22 - v1 Venkatesh Pallipadi 2011-02-07 13:50 ` Peter Zijlstra 2011-02-07 18:21 ` Venkatesh Pallipadi 2011-02-07 19:53 ` Suresh Siddha 2011-02-08 17:37 ` Venkatesh Pallipadi 2011-02-08 18:13 ` Misc sd_idle related fixes Venkatesh Pallipadi 2011-02-09 9:29 ` Peter Zijlstra 2011-02-10 17:24 ` Venkatesh Pallipadi 2011-02-08 18:13 ` [PATCH 1/3] sched: Resolve sd_idle and first_idle_cpu Catch-22 Venkatesh Pallipadi 2011-02-08 18:13 ` [PATCH 2/3] sched: fix_up broken SMT load balance dilation Venkatesh Pallipadi 2011-02-08 18:13 ` [PATCH 3/3] sched: newidle balance set idle_timestamp only on successful pull Venkatesh Pallipadi 2011-02-09 3:37 ` Mike Galbraith 2011-02-09 15:55 ` [PATCH] sched: Resolve sd_idle and first_idle_cpu Catch-22 - v1 Peter Zijlstra 2011-02-12 1:20 ` Suresh Siddha 2011-02-14 22:38 ` [PATCH] sched: Wholesale removal of sd_idle logic Venkatesh Pallipadi 2011-02-15 17:01 ` Vaidyanathan Srinivasan 2011-02-15 18:26 ` Venkatesh Pallipadi [this message] 2011-02-16 8:53 ` Vaidyanathan Srinivasan 2011-02-16 11:43 ` Peter Zijlstra 2011-02-16 13:50 ` [tip:sched/core] " tip-bot for Venkatesh Pallipadi 2011-02-15 9:15 ` [PATCH] sched: Resolve sd_idle and first_idle_cpu Catch-22 - v1 Peter Zijlstra 2011-02-15 19:11 ` Suresh Siddha 2011-02-18 1:05 ` Alex,Shi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='AANLkTi=ENtUtgHYaCJqvDGYVFKyXYFcVVOOFf8-dfW=+@mail.gmail.com' \ --to=venki@google.com \ --cc=alex.shi@intel.com \ --cc=efault@gmx.de \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@elte.hu \ --cc=npiggin@gmail.com \ --cc=peterz@infradead.org \ --cc=pjt@google.com \ --cc=suresh.b.siddha@intel.com \ --cc=svaidy@linux.vnet.ibm.com \ --cc=tim.c.chen@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).