Messages in this thread | | | From | Con Kolivas <> | Subject | Re: 2.6.21-rc2-mm2 | Date | Wed, 7 Mar 2007 00:24:51 +1100 |
| |
On Tuesday 06 March 2007 23:52, Thomas Gleixner wrote: > On Tue, 2007-03-06 at 22:58 +1100, Con Kolivas wrote: > > (tglx cc'ed as he may know something about this - sorry if it's > > inappropriate) > > John cc'ed as well :)
Thanks.
> > [<ffffffff8018401c>] do_timer+0x301/0x419
> > --- > > > > list *do_timer+0x301 > > 0xffffffff8018401c is in do_timer > > (/home/con/kernel/linux-2.6.21-rc2-mm2/include/linux/clocksource.h:186). > > 181 u64 tmp; > > 182 > > 183 /* XXX - All of this could use a whole lot of > > optimization */ 184 tmp = length_nsec; > > 185 tmp <<= c->shift; > > 186 tmp += c->mult/2; > > 187 do_div(tmp, c->mult); > > 188 > > 189 c->cycle_interval = (cycle_t)tmp; > > 190 if (c->cycle_interval == 0) > > That's extremly strange. This is inside of > clocksource_calculate_interval() in: > > static void change_clocksource(void) > { > struct clocksource *new; > cycle_t now; > u64 nsec; > > new = clocksource_get_next(); > > if (clock == new) > return; > > now = clocksource_read(new); > nsec = __get_nsec_offset(); > timespec_add_ns(&xtime, nsec); > > clock = new; > clock->cycle_last = now; > > clock->error = 0; > clock->xtime_nsec = 0; > clocksource_calculate_interval(clock, NTP_INTERVAL_LENGTH); > > tick_clock_notify(); > > printk(KERN_INFO "Time: %s clocksource has been installed.\n", > clock->name); > } > > So clock seems to be NULL, but was accessed before > clocksource_calculate_interval() as well.
It seems to be specifically tripping at c->mult after reading c->shift if I'm reading it correctly.
Note again, this is qemu, not real hardware and it will likely be giving very unrealistic values for timer calibrations.
-- -ck - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |