All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dimitri Sivanich <sivanich@sgi.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
	Mike Galbraith <efault@gmx.de>,
	Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>,
	Gregory Haskins <ghaskins@novell.com>, Greg KH <greg@kroah.com>,
	Nick Piggin <npiggin@suse.de>, Robin Holt <holt@sgi.com>
Subject: Re: 2.6.27.8 scheduler bug - threads not being scheduled for long periods
Date: Mon, 5 Jan 2009 15:54:29 -0600	[thread overview]
Message-ID: <20090105215429.GA20319@sgi.com> (raw)
In-Reply-To: <1231188958.11687.12.camel@twins>

On Mon, Jan 05, 2009 at 09:55:58PM +0100, Peter Zijlstra wrote:
> On Mon, 2009-01-05 at 11:56 -0600, Dimitri Sivanich wrote:
> > One place we've found this happens is in update_curr(), which calculates a
> > delta_exec value as follows:
> >         delta_exec = (unsigned long)(now - curr->exec_start);
> > 
> > Sometimes this value will be very large, as 'now' (the rq clock time) will
> > be less than 'exec_start'.  When this happens, __update_curr() will
> > calculate a delta_exec_weighted based on this large value and add it to the
> > thread's vruntime:
> >         curr->vruntime += delta_exec_weighted;
> 
> So you're saying your rq->clock = sched_clock_cpu(cpu) = sched_clock()
> [on ia64] goes backwards?
> 
> If so, then that's an architecture bug, sched_clock() must never be seen
> to go backwards!

Actually, sched_clock() should not go backwards on any one cpu, but the readings will be different between cpus.

Also, we noticed the following code is being used for sched_clock_cpu():
u64 sched_clock_cpu(int cpu)
{
        if (unlikely(!sched_clock_running))
                return 0;
        return sched_clock();
}

and is called when smp_processor_id() != cpu.

  reply	other threads:[~2009-01-05 21:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-05 17:56 2.6.27.8 scheduler bug - threads not being scheduled for long periods Dimitri Sivanich
2009-01-05 18:44 ` Gregory Haskins
2009-01-05 18:51   ` Dimitri Sivanich
2009-01-05 18:59     ` Gregory Haskins
2009-01-14 22:34       ` kenneth johansson
2009-01-05 20:55 ` Peter Zijlstra
2009-01-05 21:54   ` Dimitri Sivanich [this message]
2009-01-05 22:36     ` Dimitri Sivanich
2009-01-05 23:02       ` Dimitri Sivanich
2009-01-06  7:36         ` Peter Zijlstra

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=20090105215429.GA20319@sgi.com \
    --to=sivanich@sgi.com \
    --cc=efault@gmx.de \
    --cc=ghaskins@novell.com \
    --cc=greg@kroah.com \
    --cc=holt@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=npiggin@suse.de \
    --cc=peterz@infradead.org \
    --cc=vatsa@linux.vnet.ibm.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: 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.