From: Nix <nix@esperi.org.uk>
To: Jeff Dike <jdike@addtoit.com>
Cc: user-mode-linux-devel@lists.sourceforge.net
Subject: Re: [uml-devel] actually useful backtrace from a CPU-chewing hang
Date: Wed, 30 Apr 2008 22:49:27 +0100 [thread overview]
Message-ID: <871w4n9fo8.fsf@hades.wkstn.nix> (raw)
In-Reply-To: <20080428164443.GB9628@c2.user-mode-linux.org> (Jeff Dike's message of "Mon, 28 Apr 2008 12:44:44 -0400")
On 28 Apr 2008, Jeff Dike told this:
> On Sat, Apr 26, 2008 at 07:31:44PM +0100, Nix wrote:
>> The cause of this is almost certainly time-skewing on the *host* via
>> adjtimex(). I stopped ntpd and there were no problems for half a day: I
>> restarted it, and as soon as ntpd had synched and begun slewing the time
>> (within a second of slewing beginning, probably less than that), *wham*:
>
> Can you try the patch below? Time should definitely not go backwards
> - it's a bug if it happens.
I suspect that just a slowing of the rate of passing of time had nasty
negative consequences, because when ntpd is running resident all the
time, it should slew, not skew: yet we were getting loops on a regular
basis...
> If you want more a more definite
> indication about whether this is having an effect, stick a printk in
> that test and see if it shows up.
Done, and tested by stepping the time (five seconds --- five seconds per
day! I have pendulum clocks that keep better time than that!), and,
oops, instant loop as before, with this debugging patch applied, which
did not fire...
Index: i686-esperi/arch/um/os-Linux/time.c
===================================================================
--- i686-esperi.orig/arch/um/os-Linux/time.c 2008-04-29 19:34:07.000000000 +0100
+++ i686-esperi/arch/um/os-Linux/time.c 2008-04-29 20:08:50.000000000 +0100
@@ -108,7 +108,11 @@
/* Protection against the host's time going backwards */
if ((last_tick != 0) && (this_tick < last_tick))
+ {
+ printk(UM_KERN_ERR "Time went backwards: %llu -> %llu",
+ last_tick, this_tick);
this_tick = last_tick;
+ }
if (last_tick == 0)
last_tick = this_tick - one_tick;
getnstimeofday (ts=0x821ba2c) at include/linux/time.h:176
176 while(unlikely(ns >= NSEC_PER_SEC)) {
(gdb) bt
#0 getnstimeofday (ts=0x821ba2c) at include/linux/time.h:176
#1 0x080824e4 in ktime_get_ts (ts=0x821ba2c) at kernel/hrtimer.c:122
#2 0x0808247b in ktime_get () at kernel/hrtimer.c:58
#3 0x0814757c in tcf_act_police (skb=0xdc89800, a=0xded0e40, res=0x821bb68) at include/net/pkt_sched.h:53
#4 0x08146123 in tcf_action_exec (skb=0xdc89800, act=0xded0e40, res=0x821bb68) at net/sched/act_api.c:370
#5 0x08153779 in u32_classify (skb=0xdc89800, tp=0xde83f60, res=0x821bb68) at include/net/pkt_cls.h:127
#6 0x08144fed in tc_classify_compat (skb=0xdc89800, tp=0xde83f60, res=0x821bb68) at net/sched/sch_api.c:1203
#7 0x08145032 in tc_classify (skb=0xdc89800, tp=0xde83f60, res=0x821bb68) at net/sched/sch_api.c:1228
#8 0x08150a1a in ingress_enqueue (skb=0xdc89800, sch=0xdedc760) at net/sched/sch_ingress.c:77
#9 0x08137c31 in ing_filter (skb=0xfffffffe) at net/core/dev.c:1973
#10 0x08137db0 in netif_receive_skb (skb=0xdc89800) at net/core/dev.c:1994
#11 0x08137ecc in process_backlog (napi=0x8240650, quota=64) at net/core/dev.c:2132
#12 0x08137fc3 in net_rx_action (h=0x823a3fc) at net/core/dev.c:2202
#13 0x080740d4 in __do_softirq () at kernel/softirq.c:234
#14 0x0807415e in do_softirq () at kernel/softirq.c:271
#15 0x080741b6 in irq_exit () at kernel/softirq.c:310
#16 0x080576fd in do_IRQ (irq=5, regs=0x821bc6c) at arch/um/kernel/irq.c:336
#17 0x08057367 in sigio_handler (sig=29, regs=0x821bc6c) at arch/um/kernel/irq.c:95
#18 0x08064c07 in sig_handler_common (sig=29, sc=0x821bd24) at arch/um/os-Linux/signal.c:48
#19 0x08064c44 in sig_handler (sig=29, sc=0x821bd24) at arch/um/os-Linux/signal.c:80
#20 0x08064d67 in handle_signal (sig=-2, sc=0x821bd24) at arch/um/os-Linux/signal.c:157
#21 0x08066263 in hard_handler (sig=29) at arch/um/os-Linux/sys-i386/signal.c:12
#22 <signal handler called>
#23 getnstimeofday (ts=0xde3feec) at include/linux/time.h:182
#24 0x08084306 in do_gettimeofday (tv=0xde3ff04) at kernel/time/timekeeping.c:118
#25 0x0807396c in sys_gettimeofday (tv=0xbfdd7008, tz=0x0) at kernel/time.c:103
#26 0x0805a55c in handle_syscall (r=0xde78628) at arch/um/kernel/skas/syscall.c:35
#27 0x08066cdf in handle_trap (pid=26156, regs=0xde78628, local_using_sysemu=2) at arch/um/os-Linux/skas/process.c:202
#28 0x0806716b in userspace (regs=0xde78628) at arch/um/os-Linux/skas/process.c:418
#29 0x08057f5a in fork_handler () at arch/um/kernel/process.c:179
#30 0x00000000 in ?? ()
--
`If you are having a "ua luea luea le ua le" kind of day, I can only
assume that you are doing no work due [to] incapacitating nausea caused
by numerous lazy demons.' --- Frossie
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
next prev parent reply other threads:[~2008-04-30 22:07 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-25 19:59 [uml-devel] actually useful backtrace from a CPU-chewing hang Nix
2008-04-25 22:06 ` Nix
2008-04-26 18:31 ` Nix
2008-04-27 14:02 ` Nix
2008-04-28 16:44 ` Jeff Dike
2008-04-30 21:49 ` Nix [this message]
2008-05-01 15:13 ` Jeff Dike
2008-05-01 23:34 ` Nix
2008-05-02 16:30 ` Jeff Dike
2008-05-02 18:55 ` Nix
2008-05-02 19:57 ` Jeff Dike
2008-05-02 23:21 ` Nix
2008-05-03 0:56 ` Jeff Dike
2008-05-03 10:08 ` Nix
2008-05-09 15:16 ` Jeff Dike
2008-05-09 17:13 ` vincent-perrier
2008-05-09 20:32 ` Nix
2008-05-14 17:23 ` Jeff Dike
2008-05-14 18:03 ` vincent-perrier
2008-05-14 18:18 ` vincent-perrier
2008-05-14 18:29 ` vincent-perrier
2008-05-14 19:39 ` Jeff Dike
2008-05-14 20:12 ` Nix
2008-05-14 20:31 ` Nix
2008-05-14 20:43 ` Jeff Dike
2008-05-14 22:02 ` Nix
2008-05-19 18:54 ` [uml-devel] plug_and_play_clownix_network vincent-perrier
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=871w4n9fo8.fsf@hades.wkstn.nix \
--to=nix@esperi.org.uk \
--cc=jdike@addtoit.com \
--cc=user-mode-linux-devel@lists.sourceforge.net \
/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