From: Thomas Gleixner <tglx@linutronix.de>
To: Elias Oltmanns <eo@nebensachen.de>
Cc: Jiri Slaby <jirislaby@gmail.com>, linux-wireless@vger.kernel.org
Subject: Re: ath5k: kernel timing screwed - due to unserialised register access?
Date: Thu, 9 Oct 2008 13:15:20 +0200 (CEST) [thread overview]
Message-ID: <alpine.LFD.2.00.0810091313380.3237@apollo> (raw)
In-Reply-To: <alpine.LFD.2.00.0810082203360.3237@apollo>
On Wed, 8 Oct 2008, Thomas Gleixner wrote:
> There is no significant deviation between jiffies and ktime in the
> debug output, but I noticed that you run with HZ=100, right ? So the
> timeout you run is 100/50 = 2. I would have a reasonable explanation
> if it would be 1, but I need to think about it more when I'm awake.
I think I know what happens. Can you please apply the following debug
patch and provide the output?
Thanks,
tglx
diff --git a/include/linux/tick.h b/include/linux/tick.h
index 8cf8cfe..422b5f4 100644
--- a/include/linux/tick.h
+++ b/include/linux/tick.h
@@ -64,6 +64,9 @@ struct tick_sched {
unsigned long last_jiffies;
unsigned long next_jiffies;
ktime_t idle_expires;
+ ktime_t last_events0;
+ ktime_t last_events1;
+ ktime_t last_events2;
};
extern void __init tick_init(void);
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index cb02324..ca7f38a 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -464,6 +464,10 @@ static void tick_nohz_handler(struct clock_event_device *dev)
dev->next_event.tv64 = KTIME_MAX;
+ ts->last_events0 = ts->last_events1;
+ ts->last_events1 = ts->last_events2;
+ ts->last_events2 = now;
+
/*
* Check if the do_timer duty was dropped. We don't care about
* concurrency: This happens only when the cpu in charge went
@@ -565,6 +569,10 @@ static enum hrtimer_restart tick_sched_timer(struct hrtimer *timer)
ktime_t now = ktime_get();
int cpu = smp_processor_id();
+ ts->last_events0 = ts->last_events1;
+ ts->last_events1 = ts->last_events2;
+ ts->last_events2 = now;
+
#ifdef CONFIG_NO_HZ
/*
* Check if the do_timer duty was dropped. We don't care about
diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
index a40e20f..a086926 100644
--- a/kernel/time/timer_list.c
+++ b/kernel/time/timer_list.c
@@ -172,6 +172,9 @@ static void print_cpu(struct seq_file *m, int cpu, u64 now)
P(last_jiffies);
P(next_jiffies);
P_ns(idle_expires);
+ P_ns(last_events0);
+ P_ns(last_events1);
+ P_ns(last_events2);
SEQ_printf(m, "jiffies: %Lu\n",
(unsigned long long)jiffies);
}
next prev parent reply other threads:[~2008-10-09 11:15 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-05 21:45 ath5k: kernel timing screwed - due to unserialised register access? Elias Oltmanns
2008-10-05 21:59 ` Thomas Gleixner
2008-10-06 14:04 ` Elias Oltmanns
2008-10-06 19:47 ` Thomas Gleixner
2008-10-07 15:27 ` Elias Oltmanns
2008-10-07 18:02 ` Thomas Gleixner
2008-10-07 18:44 ` Thomas Gleixner
2008-10-07 21:23 ` Elias Oltmanns
2008-10-08 11:39 ` Elias Oltmanns
2008-10-08 21:14 ` Thomas Gleixner
2008-10-09 11:15 ` Thomas Gleixner [this message]
2008-10-10 8:33 ` Elias Oltmanns
2008-10-10 10:13 ` Thomas Gleixner
2008-10-10 11:50 ` Elias Oltmanns
2008-10-10 12:34 ` Thomas Gleixner
2008-10-10 12:59 ` Elias Oltmanns
2008-10-10 21:32 ` Christoph Hellwig
2008-10-11 9:55 ` Thomas Gleixner
2008-10-10 19:24 ` Nick Kossifidis
2008-10-11 9:54 ` Thomas Gleixner
2008-10-11 20:30 ` Elias Oltmanns
2008-10-14 19:00 ` Thomas Gleixner
2008-10-14 22:01 ` Elias Oltmanns
2008-10-15 8:43 ` Thomas Gleixner
2008-10-15 16:32 ` Elias Oltmanns
2008-10-15 19:53 ` Thomas Gleixner
2008-10-17 21:03 ` Elias Oltmanns
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=alpine.LFD.2.00.0810091313380.3237@apollo \
--to=tglx@linutronix.de \
--cc=eo@nebensachen.de \
--cc=jirislaby@gmail.com \
--cc=linux-wireless@vger.kernel.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 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.