Re: clockevents_program_event WARN_ON preventing boot.

From: Dave Jones
Date: Tue Apr 30 2013 - 17:37:44 EST


On Tue, Apr 30, 2013 at 05:20:07PM -0400, Dave Jones wrote:
> I have a machine that crashes instantly on boot up on Linus'
> post-3.9 tree. (8c55f1463c1fd318d5e785f02b80bcc32176d342)
>
> By booting with boot_delay=100, I was able to take a photo
> and capture the top of the trace. (For some reason, larger boot
> delay parameters seem to make it take forever before printing
> even a single character, which made this a pain to debug).
>
> The WARN_ON it prints right before locking up is this in clockevents_program_event
>
> 208 if (unlikely(expires.tv64 < 0)) {
> 209 WARN_ON_ONCE(1);
> 210 return -ETIME;
> 211 }
>
> booting with maxcpus=1 avoids the problem.
>
> I'm still trying to get a complete stack trace, though it's painful
> due to the above reason.

On a second machine, I'm seeing an oops even earlier. As soon as I
exit grub, I get a blinking cursor. If I boot with earlyprintk=vga
I can see..

Call Trace:
<IRQ>
tick_check_oneshot_broadcast
tick_check_idle
irq_enter
do_IRQ
common_interrupt
<EOI>
x86_64_start_reservations
x86_64_start_kernel
RIP: clockevents_set_mode+0x18

Matching up the Code: line of the trace with the disassembly I see..

if (dev->mode != mode) {
4c8: 39 77 38 cmp %esi,0x38(%rdi)


the comment above that code is telling..

/*
* Must be called with interrupts disabled !
*/

So how did we get an IRQ ?

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