[Devel] Re: [PATCH] Add ability to print calltraces tighter on i386

Kirill Korotaev dev at sw.ru
Thu Aug 9 01:10:00 PDT 2007


Andi Kleen wrote:
>>Not everyone likes frame buffer
> 
> 
> You don't need the frame buffer; cards typically have text mode
> fonts upto 80x50. The node numbers vary, but you can find out yours
> with vga=ask
> 
> 
>>but even with it any OOPs in  
>>network code which happens in softirq, io scheduler and nearby 
>>code that is called after passing through all the VFS hooks 
>>and many other examples produce long oopses.
>>
>>Oops-es with only the calltrace of ~50 lines do happen :)
> 
> 
> Normally most of it bogus. I had hoped to address this with the dwarf2
> unwinder, which tends to filter them out nicely,
> but Linus unfortunately has developed an quite irrational aversion against it and 
> it's not in.

Most - but not *all*.
Actually I quite agree with Linus - unwinder is just a pain,
which is the more unreliable then a plain call trace.
Plain call trace has one advantage - it prints more then needed
but it always print the required and clear info.
unwinder goes totally mad when something serious happens like stack
overflows/corruption or other bad thing. 2 my cents.

> But the problem is with bogus entries in there you have no guarantee
> that the first of your call trace is any useful -- it might be all bogus.
> So i don't really think your option makes much sense.

no. bogus entries don't make call trace irrelevant.
And it is very easy to find relevant call trace entries in std output -
call trace should always be correct from the top and from the bottom,
all other entries are checked by eip following the calls.

> Another way would be to not dump addresses and use multiple entries
> per line again. I guess that would make more sense as an option.

Thanks,
Kirill




More information about the Devel mailing list