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: