[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#636797: patch for WARN_OUT?



On Tue, Sep 06, 2011 at 10:35:32AM -0400, Daniel Kahn Gillmor wrote:
> On 09/05/2011 11:38 PM, Ben Hutchings wrote:
> > The code dump actually corresponds to this line in update_sg_lb_stats(),
> > which has been compiled inline with find_busiest_group():
> > 
> > 	sgs->avg_load = (sgs->group_load * SCHED_LOAD_SCALE) / group->cpu_power;
> 
> OK, i'm happy to take your word for it. :)
> 
> But i'd also really like to be able to make these inferences myself for
> next time i run into something like this.  I don't see how to get to
> this conclusion from the backtrace+code dump.
> 
> Do you have pointers to a doc or two that might help me make more sense
> of these backtraces+code dumps on my own in the future?

It should be possible to work this out from the debug information
(linux-image-*-dbg).  But I didn't bother to download that as it's
rather large (100s of megabytes).

The clue that find_busiest_group() has other functions inlined in
it, is that the code size shown in the dump looks too large for
such a short function.  But in any case, all functions defined as
'static' are candidates for inlining by gcc, and are almost
certain to be inlined if they have only one caller.

I have enough understanding of x86 assembly that I could compare
the disassembly of the code bytes and match it to specific C code
sequences.  There's no shortcut to that, really.

Ben.

-- 
Ben Hutchings
We get into the habit of living before acquiring the habit of thinking.
                                                              - Albert Camus



Reply to: