lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	21 Jul 2008 13:53:12 -0700
From:	Philippe Troin <phil@...i.org>
To:	Thomas Gleixner <tglx@...utronix.de>
Cc:	eric miao <eric.y.miao@...il.com>, Ingo Molnar <mingo@...e.hu>,
	LKML <linux-kernel@...r.kernel.org>,
	Jack Ren <jack.ren@...vell.com>,
	Peter Zijlstra <a.p.zijlstra@...llo.nl>,
	Dmitry Adamushko <dmitry.adamushko@...il.com>
Subject: Re: [PATCH] sched: do not stop ticks when cpu is not idle

Thomas Gleixner <tglx@...utronix.de> writes:

> On Mon, 21 Jul 2008, Philippe Troin wrote:
> > Thomas Gleixner <tglx@...utronix.de> writes:
> > I've seen weird timer behavior on both i386 and x86_64 on SMP
> > machines.  By weird I mean:
> > 
> >  - time stops for a few hours, then resumes as if nothing happened;
> > 
> >  - time flows too fast or slow (4x faster to 2x slower depending on
> >    phase of the moon);
> > 
> >  - the last one I've seen (yesterday), was: 
> >       sleep(1) sleeps for 1 second, but
> >       select(0, NULL, NULL, NULL, 0.5) sleeps for nine seconds.
> > 
> > I have been trying to track this problem for a few weeks now, without
> > success.  Booting a CONFIG_NO_HZ-enabled kernel with "highres=off
> > nohz=off" does not make a difference.  However booting a kernel with
> > CONFIG_NO_HZ and CONFIG_HIGH_RES_TIMERS disabled seems to be working
> > (I cannot garantee that since I've been using that for 48h so far, but
> > sometimes the problem takes a few days to manifest itself).
> > 
> > After a cursory reading of your patch, it looks to me that the race
> > could happen on a kernel compiled with CONFIG_NO_HZ and
> > CONFIG_HIGH_RES_TIMERS and booted with "nohz=off highres=off".  Can
> > you confirm that?
> 
> No, I can not confirm that. With nohz=off / highres=off that code path
> is not invoked.

Darn. You're right, on a more detailed reading:

  With CONFIG_NO_HZ set, the tick_nohz_stop_sched_tick() function is
  defined (declared in tick.h and defined in tick-sched.c).

  There's nothing to prevent tick_nohz_stop_sched_tick() to be called
  from cpu_idle().

  However in tick_nohz_stop_sched_tick(), ts->nohz_mode ==
  NOHZ_MODE_INACTIVE is true and the function bails out early.  And
  just before the section which was patched.

> > If you need more details (dmesg, lspci, etc), I have posted some
> > details on LKML ( http://lkml.org/lkml/2008/7/9/330 ) and I have a bug
> > posted on the Fedora/RH bugzilla (
> > https://bugzilla.redhat.com/show_bug.cgi?id=451824 ).
> 
> Will have a look. 
> 
> Question: which clocksource is active ?
> 
> cat /sys/devices/system/clocksource/clocksource0/current_clocksource

As mentionned earlier I found two systems showing up the problem, a
dual Pentium III system (i386) and a dual Opteron system running in
64-bit (x86_64).

On the i386:

  current_clocksource is jiffies

  On this one, the symptoms tend to be that the clock goes too fast or
  too slow, always by an integer multiple (seen 2x slower and 4x
  faster so far). 

  Once on this system, while the clock was running 4x faster, changing
  current_clocksource to tsc (the only other available choice)
  reestablished the "normal flow of time" :)  Back to jiffies, and the
  clock went back to 4x faster.  I could switch back and forth.

On the x86_64:

  current_clocksource is hpet
 
  On the dual Opteron system, the symptoms I've seen are that the
  system becomes unresponsive, with some "stuck" processes, and the
  time not changing for long periods of time (like a few hours).

  It's also on this sytem that I saw yesterday:

     sleep(1) takes 1 seconds.
     select(0, NULL, NULL, NULL, .5) takes 9 seconds.
     date was reporting a wall time flowing normally.

A question I had was: when the system(s) gets wedged, what kind of
debugging information could I gather on the live system before I
reboot?

Phil.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ