All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	srikar@linux.vnet.ibm.com, Thomas Gleixner <tglx@linutronix.de>,
	"linux-tip-commits@vger.kernel.org" 
	<linux-tip-commits@vger.kernel.org>
Subject: Re: [tip:sched/urgent] sched: Check sched_domain before computing group power
Date: Thu, 21 Nov 2013 16:03:44 +0100	[thread overview]
Message-ID: <20131121150344.GG10022@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <CAE9FiQUk2Mr+4WypL41tCp3+54Aa+CT-17ga9+RffscUxwWAAg@mail.gmail.com>

On Tue, Nov 19, 2013 at 03:36:12PM -0800, Yinghai Lu wrote:
> > --- a/kernel/sched/fair.c
> > +++ b/kernel/sched/fair.c
> > @@ -5379,10 +5379,31 @@ void update_group_power(struct sched_domain *sd, int cpu)
> >                  */
> >
> >                 for_each_cpu(cpu, sched_group_cpus(sdg)) {
> > -                       struct sched_group *sg = cpu_rq(cpu)->sd->groups;
> > +                       struct sched_group_power *sgp;
> > +                       struct rq *rq = cpu_rq(cpu);
> >
> > -                       power_orig += sg->sgp->power_orig;
> > -                       power += sg->sgp->power;
> > +                       /*
> > +                        * build_sched_domains() -> init_sched_groups_power()
> > +                        * gets here before we've attached the domains to the
> > +                        * runqueues.
> > +                        *
> > +                        * Use power_of(), which is set irrespective of domains
> > +                        * in update_cpu_power().
> > +                        *
> > +                        * This avoids power/power_orig from being 0 and
> > +                        * causing divide-by-zero issues on boot.
> > +                        *
> > +                        * Runtime updates will correct power_orig.
> > +                        */
> > +                       if (unlikely(!rq->sd)) {
> > +                               power_orig += power_of(cpu);
> > +                               power += power_of(cpu);
> > +                               continue;
> > +                       }
> > +
> > +                       sgp = rq->sd->groups->sgp;
> > +                       power_orig += sgp->power_orig;
> > +                       power += sgp->power;
> >                 }
> >         } else  {
> >                 /*
> 
> This one seems fix NULL reference in compute_group_power.
> 
> but get following on current Linus tree plus tip/sched/urgent.
> 
> divide error: 0000 [#1]  SMP
> [   28.190477] Modules linked in:
> [   28.192012] CPU: 11 PID: 484 Comm: kworker/u324:0 Not tainted
> 3.12.0-yh-10487-g4b94e59-dirty #2044
> [   28.210488] Hardware name: Oracle Corporation  Sun Fire
> [   28.229877] task: ffff88ff25205140 ti: ffff88ff2520a000 task.ti:
> ffff88ff2520a000
> [   28.236139] RIP: 0010:[<ffffffff810d9ff4>]  [<ffffffff810d9ff4>]
> find_busiest_group+0x2b4/0x8a0

Hurmph.. what kind of hardware is that? and is there anything funny you
do to make it do this?

  reply	other threads:[~2013-11-21 15:03 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-12 18:05 [tip:sched/core] sched/fair: Fix group power_orig computation tip-bot for Peter Zijlstra
2013-09-12 23:21 ` Michael Neuling
2013-11-12 10:55 ` Srikar Dronamraju
2013-11-12 11:57   ` Peter Zijlstra
2013-11-12 16:41     ` [PATCH v2] sched: Check sched_domain before computing group power Srikar Dronamraju
2013-11-12 17:03       ` Peter Zijlstra
2013-11-12 17:15         ` Srikar Dronamraju
2013-11-12 17:55           ` Peter Zijlstra
2013-11-13  5:55             ` Srikar Dronamraju
     [not found]       ` <CAM4v1pNMn=5oZDiX3fUp9uPkZTPJgk=vEKEjevzvpwn=PjTzXg@mail.gmail.com>
2013-11-13 11:23         ` Srikar Dronamraju
2013-11-14  6:06           ` Preeti U Murthy
2013-11-14  8:30             ` Peter Zijlstra
2013-11-14  9:12               ` Preeti U Murthy
2013-11-13 15:17       ` Peter Zijlstra
2013-11-14 10:50         ` Srikar Dronamraju
2013-11-14 11:15           ` Peter Zijlstra
2013-11-19 19:15         ` [tip:sched/urgent] " tip-bot for Srikar Dronamraju
2013-11-19 23:36           ` Yinghai Lu
2013-11-21 15:03             ` Peter Zijlstra [this message]
2013-11-21 17:22               ` Yinghai Lu
2013-11-21 22:03                 ` Yinghai Lu
2013-11-28  3:02                   ` David Rientjes
2013-11-28  7:07                     ` Yinghai Lu
2013-11-28  9:38                       ` Peter Zijlstra
2013-11-28 20:23                         ` Yinghai Lu
2013-12-06  6:24                       ` Yinghai Lu
2013-12-10 10:58                         ` Peter Zijlstra
2013-12-10 21:26                           ` Yinghai Lu
2013-11-22 12:07                 ` Peter Zijlstra
2013-11-23  5:00                   ` Yinghai Lu
2013-11-23 18:53                     ` Peter Zijlstra
2013-11-28  2:57           ` David Rientjes

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=20131121150344.GG10022@twins.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=srikar@linux.vnet.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=yinghai@kernel.org \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.