bootgraph: fix for use with dot symbols

Submitted by Michael Neuling on Jan. 28, 2009, 3:30 a.m.

Details

Message ID 19599.1233113450@neuling.org
State Accepted, archived
Commit 0bb98e231803860e978c302b9faccaf776881137
Headers show

Commit Message

Michael Neuling Jan. 28, 2009, 3:30 a.m.
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(-)

Comments

Arjan van de Ven Jan. 28, 2009, 4:53 a.m.
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?
Anton Blanchard Jan. 28, 2009, 10:56 a.m.
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
Michael Neuling Feb. 8, 2009, 12:57 a.m.
> > 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

Patch hide | download patch | download mbox

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;