public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: john stultz <johnstul@us.ibm.com>
To: Frans Pop <elendil@planet.nl>
Cc: linux-s390@vger.kernel.org, Roman Zippel <zippel@linux-m68k.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [BUG,2.6.28,s390] Fails to boot in Hercules S/390 emulator - hang traced
Date: Mon, 16 Mar 2009 22:09:16 -0700	[thread overview]
Message-ID: <1237266556.7306.80.camel@localhost.localdomain> (raw)
In-Reply-To: <200903131248.03622.elendil@planet.nl>

On Fri, 2009-03-13 at 12:48 +0100, Frans Pop wrote:
> One more.
> 
> On Thursday 12 March 2009, Frans Pop wrote:
> > I have now been able to trace the hang (full log attached). Where I
> > added tracing printks should be fairly obvious, and see attachment.
> > No idea what to make of the result.
> 
> I added printks that show changes in clock data. I print info for
> 3 consecutive calls of update_wall_time every 1000 times the function
> is called and also after a change of clock source.

[snip]

> The values are: "from the very beginning of the function" -> "just after
> the calculations". Values are from nsecs fields.
> The xtime.tv_nsec which enters the function increases nicely and follows
> the timestamps from Hercules, but look rather bogus after the calculations.
> 
> With Roman's patch and the later patch this changes to:
> 
>      0.004593! timekeeping: clock source changed from none to jiffies (shift: 8)
>      0.005051! timekeeping (jiffies, 8): xtime.tv: 594977000 -> 594977001
>      0.005097!    clock->xtime: 0 -> -256, error: 0 -> -4294867296
>      0.009608! timekeeping (jiffies, 8): xtime.tv: 594977001 -> 594960618
>      0.009712!    clock->xtime: -256 -> -256, error: -4294867296 -> -4292501984672096
>      0.014463! Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
> [... Clock has gone back? ...]


xtime going backwards is actually allowable, as xtime does not store the
entire state of time.

Time is represented by the equation:
	xtime + (offset * mult) >> shift

Since we steer the clock by changing the mult value, imagine if we were
slowing down time, we'd decrese mult by one. However, since  offset may
be non-zero, we have to keep the equation balanced, or time might
actually go backwards.

Given:
	mult2 == mult1 - 1

	xtime1 + (offset * mult1) >> shift == xtime2 + (offset * mult2) >> shift
	xtime1 + (offset * mult1) >> shift == xtime2 + (offset * (mult1 - 1)) >> shift
	xtime1 + (offset * mult1) >> shift - (offset * (mult1 - 1)) >> shift == xtime2
	xtime1 + (offset * mult1 - offset * (mult1 - 1)) >> shift == xtime2
	xtime1 + (offset * mult1 - (offset * mult1 - offset*1)) >> shift == xtime2
	xtime1 + offset>> shift == xtime2

Now, if we are increasing mult, xtime will be decreased in the same
fashion. So the xtime value going backwards isn't wrong by itself, as
the corresponding offset * newmult will compensate.

xtime_cache actually stores a snapshot of the full state each call to
update_wall_time(), so you might want to use that in your printing
instead.


>From what I've seen so far debugging today it seems something goes off
in clocksource_bigadjust(), and the error continues to grow instead of
being corrected, and we end up constantly increasing mult.

I'm still not quite sure how this links to the hang, but I'm still digging.

thanks
-john


  parent reply	other threads:[~2009-03-17  5:09 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-08  1:30 [BUG,2.6.28,s390] Fails to boot in Hercules S/390 emulator Frans Pop
2009-03-08  7:21 ` Frans Pop
2009-03-09 15:04 ` Frans Pop
2009-03-11  1:00   ` john stultz
2009-03-11  9:00     ` Frans Pop
2009-03-11 16:03     ` Frans Pop
2009-03-11 17:05       ` Frans Pop
2009-03-11 19:05       ` Frans Pop
2009-03-12  0:34         ` john stultz
2009-03-12  4:47           ` john stultz
2009-03-12  6:51             ` Frans Pop
2009-03-17  5:15               ` john stultz
2009-03-17 14:39                 ` Frans Pop
2009-03-12  0:30       ` john stultz
2009-03-12  0:47         ` john stultz
2009-03-12  1:30           ` Thomas Gleixner
2009-03-12  1:57             ` john stultz
2009-03-12  7:50               ` Thomas Gleixner
2009-03-12 17:05           ` [BUG,2.6.28,s390] Fails to boot in Hercules S/390 emulator - hang traced Frans Pop
2009-03-13 11:48             ` Frans Pop
2009-03-13 17:34               ` Frans Pop
2009-03-17  5:09               ` john stultz [this message]
2009-03-18  2:26             ` john stultz
2009-03-18  2:54               ` john stultz
2009-03-18  9:28                 ` Martin Schwidefsky
2009-03-18 12:07                   ` Frans Pop
2009-03-18 15:48                     ` John Stultz
2009-03-23  0:11                       ` Frans Pop
2009-03-23 22:19                         ` John Stultz
2009-03-24  8:23                           ` Martin Schwidefsky
2009-04-14 22:27                         ` [PATCH] Avoid possible endless loop when using jiffies clocksource and ONESHOT mode clockevent john stultz
2009-03-18 15:39                   ` [BUG,2.6.28,s390] Fails to boot in Hercules S/390 emulator - hang traced John Stultz
2009-03-10  3:09 ` [BUG,2.6.28,s390] Fails to boot in Hercules S/390 emulator John Stultz
2009-03-10  3:37   ` Frans Pop
2009-03-10  3:38     ` John Stultz

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=1237266556.7306.80.camel@localhost.localdomain \
    --to=johnstul@us.ibm.com \
    --cc=elendil@planet.nl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=zippel@linux-m68k.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox