lkml.org 
[lkml]   [2008]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 64bit kernel not booting with CONFIG_PRINTK_TIME=y
On Thu, Jul 17, 2008 at 07:05:02PM +0200, Guy Martin wrote:
>
> Recompiling with CONFIG_PRINTK_TIME=n makes it works straight away.
>

The problem is kernel/printk.c around line 731.

t = jiffies * (NSEC_PER_SEC / HZ);
do_div(t, 10000000000); is doing some badness (which is hard as hell to
debug since printk isn't working.)

It's doing some sort of bollocks when jiffies is between 9 and 10...

do_div being:

# define do_div(n,base) ({ \
uint32_t __base = (base); \
uint32_t __rem; \
__rem = ((uint64_t)(n)) % __base; \
(n) = ((uint64_t)(n)) / __base; \
__rem; \
})

I'm *guessing* that umoddi3 or udivdi3 is doing an xmpyu or something,
which since this is probably before fpu init, is trapping, which is
trying to printk, which is recursively exploding.

regards, Kyle


\
 
 \ /
  Last update: 2008-07-19 23:57    [W:0.045 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site