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

Andi Kleen
2006-09-30T21:57:14Z

>
> It could - and _should_ dammit! - do some basic sanity tests like "is the
> thing even in the same stack page"? But nooo... It seems _designed_ to be
> fragile and broken.

That wouldn't work with interrupt stacks.

The old unwinder code had a state machine to deal with them,
but it was distingustingly complicated (there are nasty corner cases
where you can be in multiple interrupt stacks nested). I'm not
sure we would have really wanted to retain that.

What it does is to do __get_user for the stack values and it has the
unwind tables in the executable as sanity check, so in some sense it is
more reliable than the old code.

BTW again let me repeat this particular issue wasn't in the unwinder
itself, but just in the fallback-to-old code which didn't do enough
sanity checks. So you can say it's not the new unwinder that
crashed, but the old one here. I'll add more.

-Andi