All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Walker <dwalker@fifo99.com>
To: Remy Bohmer <linux@bohmer.net>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-rt-users <linux-rt-users@vger.kernel.org>
Subject: Re: System lockup with 2.6.26.8-rt16 on ARM9 [Solved]
Date: Sat, 29 Aug 2009 07:42:45 -0700	[thread overview]
Message-ID: <1251556965.9909.10.camel@desktop> (raw)
In-Reply-To: <3efb10970908290047k6f4d5a14of148db7f2b179f18@mail.gmail.com>

On Sat, 2009-08-29 at 09:47 +0200, Remy Bohmer wrote:

> Well, we found the root cause of this problem.
> It turned out to be caused by sched_clock() that made disjunct time jumps.
> This caused this check to become true in kernel/sched_rt.c:370:
>          if (rt_rq->rt_time > runtime) {
>                 rt_rq->rt_throttled = 1;
>                 if (rt_rq_throttled(rt_rq)) {
>                         sched_rt_rq_dequeue(rt_rq);
>                         return 1;
>                 }
>         }
> 
> The end results is that all realtime tasks got throttled for a long
> time, and that time got extended every time sched_clock() made such a
> jump. I would never have expected the scheduler would show this kind
> of behaviour while CONFIG_RT_GROUP_SCHED is _not_ set...
> 
> The root-cause of the sched_clock being faulty was a synchronisation
> issue between 2 clock domains. The CPU clock and the clock domain of
> the peripheral (GPT) on which the sched_clock() implementation was
> based. The GPT made jumps backwards which triggered a false wraparound
> detection in the conversion of 32->64 bit timestamps, causing the time
> to jump about 356 seconds in the future...
> 

Can you tell us more about what type of board this was? I've never heard
of a ARM board having an unstable clocksource before ..

Daniel


  reply	other threads:[~2009-08-29 14:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-29  7:47 System lockup with 2.6.26.8-rt16 on ARM9 [Solved] Remy Bohmer
2009-08-29 14:42 ` Daniel Walker [this message]
2009-08-30  9:34   ` Remy Bohmer

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=1251556965.9909.10.camel@desktop \
    --to=dwalker@fifo99.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=linux@bohmer.net \
    --cc=tglx@linutronix.de \
    /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.