Re: hrtimer problem on AT91RM9200
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Hello,
On Fri, Sep 11, 2009 at 05:20:44PM +0200, Uwe Kleine-König wrote:
> Hello Bo,
>
> In the meantime I got access to an at91rm9200, too. To help me
> reproducing the problem:
I still cannot reproduce, but I found something anyhow.
The problem is that hrtimer_interrupt_hanging decreases min_delta_ns.
(Initially it's 61036.)
I talked to jstultz on irc and both of us are unsure if asserting that
min_delta_ns isn't decreased in hrtimer_interrupt_hanging is enough or
if there is another problem.
Bo, can you please apply the patch below, pass the kernel parameter
ftrace_dump_on_oops (or alternatively do
# echo 1 > /proc/sys/kernel/ftrace_dump_on_oops
), reproduce the problem and send the resulting oops?
Best regards
Uwe
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index 51bd089..cd72ca9 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -18,6 +18,7 @@
#include <linux/personality.h>
#include <linux/kallsyms.h>
#include <linux/delay.h>
+#include <linux/kdebug.h>
#include <linux/hardirq.h>
#include <linux/init.h>
#include <linux/uaccess.h>
@@ -223,6 +224,8 @@ static void __die(const char *str, int err, struct thread_info *thread, struct p
dump_backtrace(regs, tsk);
dump_instr(regs);
}
+
+ notify_die(DIE_OOPS, str, regs, err, current->thread.trap_no, SIGSEGV);
}
DEFINE_RAW_SPINLOCK(die_lock);
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index 9e308ab..a0c05f3 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -1390,8 +1390,16 @@ void hrtimer_interrupt(struct clock_event_device *dev)
/* Reprogramming necessary ? */
if (expires_next.tv64 != KTIME_MAX) {
- if (tick_program_event(expires_next, force_clock_reprogram))
+ if (tick_program_event(expires_next, force_clock_reprogram)) {
+ if (nr_retries > 1)
+ trace_printk("tick_program_event failed, "
+ "now=%lld, expires_next=%lld, "
+ "nr_retries=%d\n",
+ (long long)now.tv64,
+ (long long)expires_next.tv64,
+ nr_retries);
goto retry;
+ }
}
if (raise)
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[RT Stable]
[Kernel Newbies]
[Share Photos]
[IDE]
[Security]
[Git]
[Netfilter]
[Bugtraq]
[Photo]
[Yosemite]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Linux ATA RAID]
[Samba]
[Video 4 Linux]
[Device Mapper]
[Linux Resources]