Re: 2.6.18-rc6-mm1: GPF loop on early boot

Ingo Molnar
2006-09-10T12:05:10Z

* Andi Kleen <ak@suse.de> wrote:

> > This kernel won't boot here: it starts a GPFs loop on
> > early boot. I attached a screenshot of the first GPF
> > (pause_on_oops=120 helped).
>
> It's lockdep's fault. This patch should fix it:

Well, it's also x86_64's fault: why does it call into a generic C
function (x86_64_start_kernel()) without having a full CPU state up and
running? i686 doesnt do it, never did.

We had frequent breakages due to this property of the x86_64 arch code
(many more than this single incident with lockdep), tracing and all
sorts of other instrumentation (including earlier versions of lockdep)
was hit by it again and again.

Basically, non-atomic setup of basic architecture state _is_ going to be
a nightmare, lockdep or not, especially if it uses common infrastructure
like 'current', spin_lock() or even something as simple as C functions.
(for example the stack-footprint tracer was once hit by this weakness of
the x86_64 code)

> Hackish patch to fix lockdep with PDA current

hm, this is ugly beyond words. Do you have a config i could try which
exhibits this problem? I'm sure there is a better solution.

Ingo