Re: BUG-lockdep and freeze (was: Arrr! Linux 2.6.18)

From: Linus Torvalds
Date: Sat Sep 30 2006 - 20:58:30 EST




On Sat, 30 Sep 2006, Linus Torvalds wrote:
>
> - you have an outer loop that loops around the pages (since the _kernel_
> controls the stack nesting at that level). This is the loop I quoted at
> you.
>
> - you have a _separate_ "unwinder()" for each page. It only unwinds
> within that one page, and if the frame moves away from the page, it
> immediately just returns that address, but it knows that it cannot be a
> "valid" unwind address within that page.

Side note: it's entirely possible that the "unwinder" code shouldn't even
try to return the address outside the page, since the first/last frame on
a page is likely to be special (ie it's an exception/interrupt kind of
thing), and it's entirely possible that the "page-level" loop is better at
handling that part too.

That way you wouldn't even need to make the exception frames haev the
dwarf info etc, because you could choose to just depend on knowing what
the format of such a page was. But that's obviously just an implementation
choice..

Doesn't that sound like it should be both fairly straightforward and
reasonable?

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/