Re: 3.0.0-rc2: Xen: powernow-k8: Kernel panic - not syncing: Attempted to kill init!

Tobias Diedrich
2011-06-14T00:13:35Z

Tobias Diedrich wrote:
> Konrad Rzeszutek Wilk wrote:
> > > [ 5.523199] rtc_cmos 00:05: setting system clock to 2011-06-13 20:20:00 UTC (1307996400)
> > > [ 5.523400] powernow-k8: Found 1 AMD Athlon(tm) 64 Processor 3700+ (1 cpu cores) (version 2.20.00)
> > > [ 5.530956] powernow-k8: fid 0x2 (1000 MHz), vid 0x12
> > > [ 5.531072] powernow-k8: fid 0xa (1800 MHz), vid 0xa
> > > [ 5.531187] powernow-k8: fid 0xc (2000 MHz), vid 0x8
> > > [ 5.531301] powernow-k8: fid 0xe (2200 MHz), vid 0x8
> > > [ 5.531460] Marking TSC unstable due to cpufreq changes
> > > [ 5.531680] powernow-k8: fid trans failed, fid 0x2, curr 0x0
> > > [ 5.531802] BUG: unable to handle kernel paging request at ffff880807e07b78
> > > [ 5.531982] IP: [<ffffffff81479163>] cpufreq_stats_update+0x46/0x5b
> >
> > For this one, you will have to fire out gdb and disassemble the code to
> > figure out where it failed. Look for 'gdb vmlinux' and 'disassembly' on this
> > mailing list - that should provide some hints.
>
> Probably because of the 'fid trans failed' stat->last_index is -1

It's set to -1 in cpufreq_stats_create_table(), the second call to
freq_table_get_index() doesn't check against -1 (expecting the call
to always succeed):

stat->last_time = get_jiffies_64();
stat->last_index = freq_table_get_index(stat, policy->cur);