Patchwork bootgraph: fix for use with dot symbols

login
register
mail settings
Submitter Michael Neuling
Date Jan. 28, 2009, 3:30 a.m.
Message ID <19599.1233113450@neuling.org>
Download mbox | patch
Permalink /patch/20550/
State Accepted
Commit 0bb98e231803860e978c302b9faccaf776881137
Headers show

Comments

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(-)
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

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;