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

Andi Kleen
2006-10-01T09:27:56Z

> Side note: it's entirely possible that the "unwinder" code shouldn't even

How often do I need to repeat that it wasn't the dwarf2 unwinder that crashed
here, but the fallback code that is essentially just the old unwinder? Somehow
I don't seem to get through.

> 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?

Ok I guess it would be possible to add another level of stack validation to
the unwinder if you insist of it.

I don't think it would help all that much because the unwinder already does
pretty good validation based on CFI and it wouldn't have avoided that
particular problem anyways (which was already fixed in 2.6.18 BTW, Eric's
bisect just managed to find a bad spot before 2.6.18)

Also I still think the code will be fairly ugly to do this, but at least it's
already written for the old unwinder. The x86-64 code needed
at least one state variable, requiring more function arguments
all over the unwinder, but it might be possible to do it without that.

-Andi