Message ID | 19599.1233113450@neuling.org (mailing list archive) |
---|---|
State | Accepted, archived |
Commit | 0bb98e231803860e978c302b9faccaf776881137 |
Headers | show |
Michael Neuling wrote: > powerpc has dot symbols, so the dmesg output looks like: > > <4>[ 0.327310] calling .migration_init+0x0/0x9c @ 1 > <4>[ 0.327595] initcall .migration_init+0x0/0x9c returned 1 after 0 usecs > > The below fixes bootgraph.pl so it handles this correctly. question for the ppc folks.... why does the "print symbol" magic format string thing print a dot symbol and not the real function name? Should that be fixed instead?
Hi Arjan, > question for the ppc folks.... why does the "print symbol" magic format string > thing print a dot symbol and not the real function name? > Should that be fixed instead? We have two symbols for each function, foo points to the function descriptor, and .foo points to the instruction text. If we were to strip the '.' when we print symbols then it would become harder to diagnose some failures (eg branching to the function descriptor instead of the instruction text). Anton
> > question for the ppc folks.... why does the "print symbol" magic format str ing > > thing print a dot symbol and not the real function name? > > Should that be fixed instead? > > We have two symbols for each function, foo points to the function > descriptor, and .foo points to the instruction text. If we were to strip > the '.' when we print symbols then it would become harder to diagnose > some failures (eg branching to the function descriptor instead of the > instruction text). Arjan, I don't think there is much scope for removing dot symbols in the near future. Can you please take the patch as is for now so bootgraph will at least work for existing systems? Mikey
Index: linux-2.6-ozlabs/scripts/bootgraph.pl =================================================================== --- linux-2.6-ozlabs.orig/scripts/bootgraph.pl +++ linux-2.6-ozlabs/scripts/bootgraph.pl @@ -51,7 +51,7 @@ my %pidctr; while (<>) { my $line = $_; - if ($line =~ /([0-9\.]+)\] calling ([a-zA-Z0-9\_]+)\+/) { + if ($line =~ /([0-9\.]+)\] calling ([a-zA-Z0-9\_\.]+)\+/) { my $func = $2; if ($done == 0) { $start{$func} = $1; @@ -87,7 +87,7 @@ while (<>) { $count = $count + 1; } - if ($line =~ /([0-9\.]+)\] initcall ([a-zA-Z0-9\_]+)\+.*returned/) { + if ($line =~ /([0-9\.]+)\] initcall ([a-zA-Z0-9\_\.]+)\+.*returned/) { if ($done == 0) { $end{$2} = $1; $maxtime = $1;
powerpc has dot symbols, so the dmesg output looks like: <4>[ 0.327310] calling .migration_init+0x0/0x9c @ 1 <4>[ 0.327595] initcall .migration_init+0x0/0x9c returned 1 after 0 usecs The below fixes bootgraph.pl so it handles this correctly. Signed-off-by: Michael Neuling <mikey@neuling.org> --- scripts/bootgraph.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)