Skip to contentSkip to conversation

fastboot: fix bootgraph.pl to run with "use strict"

PATCH Applied Alan Jenkins 5 participants 6 messages Oct 14, 2008 – Oct 22, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 fastboot: fix bootgraph.pl to run with "use strict"

As a perl novice, I would prefer to have the benefit of the interpreters' wisdom. It turns out there were already some warnings, so let's fix them.

scripts/bootgraph.pl +10 -5
index 5e7316e..ea2b079 100644
@@ -37,7 +37,10 @@
 # 	dmesg | perl scripts/bootgraph.pl > output.svg
 #
 
-my %start, %end;
+use strict;
+
+my %start;
+my %end;
 my $done = 0;
 my $maxtime = 0;
 my $firsttime = 100;
@@ -105,12 +108,14 @@ my $threshold = ($maxtime - $firsttime) / 60.0;
 my $stylecounter = 0;
 my %rows;
 my $rowscount = 1;
+my $key;
+my $value;
 while (($key,$value) = each %start) {
 	my $duration = $end{$key} - $start{$key};
 
 	if ($duration >= $threshold) {
-		my $s, $s2, $e, $y;
-		$pid = $pids{$key};
+		my ($s, $s2, $e, $w, $y, $y2, $style);
+		my $pid = $pids{$key};
 
 		if (!defined($rows{$pid})) {
 			$rows{$pid} = $rowscount;
@@ -140,9 +145,9 @@ while (($key,$value) = each %start) {
 my $time = $firsttime;
 my $step = ($maxtime - $firsttime) / 15;
 while ($time < $maxtime) {
-	my $s2 = ($time - $firsttime) * $mult;
+	my $s3 = ($time - $firsttime) * $mult;
 	my $tm = int($time * 100) / 100.0;
-	print "<text transform=\"translate($s2,89) rotate(90)\">$tm</text>\n";
+	print "<text transform=\"translate($s3,89) rotate(90)\">$tm</text>\n";
 	$time = $time + $step;
 }
 
#1 lore raw

PATCH 2/2 fastboot: fix row order in bootgraph.pl

When bootgraph.pl parses a file, it gives one row for each initcall's pid. But they are displayed in random (perl hash) order. Let's sort the pids by the start time of their first initcall instead.

This helps trace module initcalls, where each has a separate pid. bootgraph.pl will show module initcalls during the initramfs; it may also be adapted to show subsequent module initcalls.

scripts/bootgraph.pl +3 -3
index ea2b079..d2c61ef 100644
@@ -108,9 +108,9 @@ my $threshold = ($maxtime - $firsttime) / 60.0;
 my $stylecounter = 0;
 my %rows;
 my $rowscount = 1;
+my @initcalls = sort { $start{$a} <=> $start{$b} } keys(%start);
 my $key;
-my $value;
-while (($key,$value) = each %start) {
+foreach $key (@initcalls) {
 	my $duration = $end{$key} - $start{$key};
 
 	if ($duration >= $threshold) {
@@ -121,7 +121,7 @@ while (($key,$value) = each %start) {
 			$rows{$pid} = $rowscount;
 			$rowscount = $rowscount + 1;
 		}
-		$s = ($value - $firsttime) * $mult;
+		$s = ($start{$key} - $firsttime) * $mult;
 		$s2 = $s + 6;
 		$e = ($end{$key} - $firsttime) * $mult;
 		$w = $e - $s;
#2 lore raw

Re : [PATCH 2/2] fastboot: fix row order in bootgraph.pl

2008/10/14, Alan Jenkins <[email protected]>:

Quoted 3 lines

When bootgraph.pl parses a file, it gives one row for each initcall's pid. But they are displayed in random (perl hash) order. Let's sort the pids by the start time of their first initcall instead.

Thanks. That's a good idea!

I can't test it yet but I will give you a feedback as soon as I can.

Applied
#3 lore raw

Re: Re : [PATCH 2/2] fastboot: fix row order in bootgraph.pl

Quoted 8 lines · Frédéric Weisbecker

2008/10/14, Alan Jenkins <[email protected]>:

Quoted 3 lines

When bootgraph.pl parses a file, it gives one row for each initcall's pid. But they are displayed in random (perl hash) order. Let's sort the pids by the start time of their first initcall instead.

Thanks. That's a good idea!

I can't test it yet but I will give you a feedback as soon as I can.

i've applied the two fix patches from Alan to tip/tracing/urgent:

06d1cd2: tracing/fastboot: fix row order in bootgraph.pl 2a813f8: tracing/fastboot: fix bootgraph.pl to run with "use strict"

Arjan, Steve, any objections?

Ingo

#4 lore raw

Re: Re : [PATCH 2/2] fastboot: fix row order in bootgraph.pl

Quoted 10 lines · Ingo Molnar
Quoted 7 lines · Fr?d?ric Weisbecker

2008/10/14, Alan Jenkins <[email protected]>:

Quoted 3 lines

When bootgraph.pl parses a file, it gives one row for each initcall's pid. But they are displayed in random (perl hash) order. Let's sort the pids by the start time of their first initcall instead.

Thanks. That's a good idea!

Quoted 8 lines
Quoted 1 line

I can't test it yet but I will give you a feedback as soon as I can.

i've applied the two fix patches from Alan to tip/tracing/urgent:

06d1cd2: tracing/fastboot: fix row order in bootgraph.pl 2a813f8: tracing/fastboot: fix bootgraph.pl to run with "use strict"

Arjan, Steve, any objections?

I have no objections.

-- Steve

#5 lore raw

Re: Re : [PATCH 2/2] fastboot: fix row order in bootgraph.pl

In reply to Ingo Molnar
Quoted 13 lines · On Wed, 22 Oct 2008 16:37:41 +0200 Ingo Molnar <[email protected]> wrote:
Quoted 9 lines · Frédéric Weisbecker

2008/10/14, Alan Jenkins <[email protected]>:

Quoted 4 lines

When bootgraph.pl parses a file, it gives one row for each initcall's pid. But they are displayed in random (perl hash) order. Let's sort the pids by the start time of their first initcall instead.

Thanks. That's a good idea!

I can't test it yet but I will give you a feedback as soon as I can.

Quoted 8 lines

i've applied the two fix patches from Alan to tip/tracing/urgent:

06d1cd2: tracing/fastboot: fix row order in bootgraph.pl 2a813f8: tracing/fastboot: fix bootgraph.pl to run with "use strict"

Arjan, Steve, any objections?

Ingo

fine with me

Signature · 3 lines
Arjan van de Ven 	Intel Open Source Technology Centre
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org