Messages in this thread | | | Date | Wed, 27 Aug 2008 09:54:09 +0100 | From | Alan Jenkins <> | Subject | Re: [BUG] get_rtc_time() triggers NMI watchdog in hpet_rtc_interrupt() |
| |
Ingo Molnar wrote: > * Alan Jenkins <alan-jenkins@tuffmail.co.uk> wrote: > > >> I beat you :-). I noticed the problem myself. It does trigger if I >> run hwclock in a loop. >> >> while true; do hwclock; done >> >> However it is fine in latest git. Looks like Ingo's patch has been >> merged, and has fixed it. >> > > ah, good - thanks for testing it. I havent seen a lockup on the T60 > either - but it was very sporadic to begin with. (and now we understand > why: hwclock is running only once per reboot.) > > Plus, the real bug has to be found as well: who in the rtc ioctl path > calls this code with irqs disabled - it's not nice. >
Isn't the problem that it gets called from a timer IRQ? So irqs are enabled globally, but the timer IRQ is masked.
[<c0139cc0>] hrtimer_run_pending+0x20/0x90 [<c01478a8>] handle_IRQ_event+0x28/0x50 [<c0148f71>] handle_edge_irq+0xa1/0x120 [<c010615b>] do_IRQ+0x3b/0x70 [<c0113225>] smp_apic_timer_interrupt+0x55/0x80 [<c0103c4f>] common_interrupt+0x23/0x28
Which in turn is probably because the userspace "RTC interrupt" interface is emulated using RTC reads within the main timer interrupt handler.
Alan
| |