[lkml]   [2001]   [Oct]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Recursive deadlock on die_lock
Keith Owens <> writes:

> On Sat, 13 Oct 2001 23:42:51 -0700,
> Andrew Morton <> wrote:
> >Keith Owens wrote:
> >>
> >> ...
> >> If show_registers() fails (which it does far too often on IA64) then
> >> the system deadlocks trying to recursively obtain die_lock. Also
> >> die_lock is never used outside die(), it should be proc local.
> >> Suggested fix:
> >>
> >
> >Looks to me like it'll work. But why does ia64 show_registers()
> >die so easily? Can it be taught to validate addresses before
> >dereferencing them somehow?
> Unwind code. It is impossible to obtain IA64 saved registers or back
> trace the calling sequence without using the unwind API. That API
> relies on decent unwind data being associated with each function
> prologue, stack adjustment, save of return registers etc. Not an issue
> for C code, it is for Assembler where the unwind info has to be hand
> coded to match what the asm is doing. IA64 also has PAL code which is
> called directly by the kernel, that PAL code has no unwind data so
> failures in PAL code result in bad or incomplete back traces.
> Unwind is not supposed to fail, it should detect bad input data and
> avoid errors. Alas, sometimes it does fail.

PAL Ahh!!!!!

Please tell me that we are not rely on the firmware to be correct
after we have finished initializing the operating system.

Please tell me it ain't so. I have nightmares about that kind of setup.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:08    [W:0.050 / U:3.372 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site