diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-12 21:22:27 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-12 21:22:27 -0400 |
| commit | 321d03c86732e45f5f33ad0db5b68e2e1364acb9 (patch) | |
| tree | 19007efbd4ea1a09df9e3067d142ca2253fff266 /scripts/bootgraph.pl | |
| parent | fd1232b214af43a973443aec6a2808f16ee5bf70 (diff) | |
| parent | f23a9fa7e81f7df65e0bcf586e028a2db736b9e6 (diff) | |
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
Pull misc kbuild changes from Michal Marek:
"Here is the non-critical part of kbuild:
- One bogus coccinelle check removed, one check fixed not to suggest
the obsolete PTR_RET macro
- scripts/tags.sh does not index the generated *.mod.c files
- new objdiff tool to list differences between two versions of an
object file
- A fix for scripts/bootgraph.pl"
* 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
scripts/coccinelle: Use PTR_ERR_OR_ZERO
scripts/bootgraph.pl: Add graphic header
scripts: objdiff: detect object code changes between two commits
Coccicheck: Remove memcpy to struct assignment test
scripts/tags.sh: Ignore *.mod.c
Diffstat (limited to 'scripts/bootgraph.pl')
| -rw-r--r-- | scripts/bootgraph.pl | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/scripts/bootgraph.pl b/scripts/bootgraph.pl index b78fca994a15..9ca667bcaee9 100644 --- a/scripts/bootgraph.pl +++ b/scripts/bootgraph.pl | |||
| @@ -38,6 +38,31 @@ | |||
| 38 | # | 38 | # |
| 39 | 39 | ||
| 40 | use strict; | 40 | use strict; |
| 41 | use Getopt::Long; | ||
| 42 | my $header = 0; | ||
| 43 | |||
| 44 | sub help { | ||
| 45 | my $text = << "EOM"; | ||
| 46 | Usage: | ||
| 47 | 1) dmesg | perl scripts/bootgraph.pl [OPTION] > output.svg | ||
| 48 | 2) perl scripts/bootgraph.pl -h | ||
| 49 | |||
| 50 | Options: | ||
| 51 | -header Insert kernel version and date | ||
| 52 | EOM | ||
| 53 | my $std=shift; | ||
| 54 | if ($std == 1) { | ||
| 55 | print STDERR $text; | ||
| 56 | } else { | ||
| 57 | print $text; | ||
| 58 | } | ||
| 59 | exit; | ||
| 60 | } | ||
| 61 | |||
| 62 | GetOptions( | ||
| 63 | 'h|help' =>\&help, | ||
| 64 | 'header' =>\$header | ||
| 65 | ); | ||
| 41 | 66 | ||
| 42 | my %start; | 67 | my %start; |
| 43 | my %end; | 68 | my %end; |
| @@ -49,6 +74,11 @@ my $count = 0; | |||
| 49 | my %pids; | 74 | my %pids; |
| 50 | my %pidctr; | 75 | my %pidctr; |
| 51 | 76 | ||
| 77 | my $headerstep = 20; | ||
| 78 | my $xheader = 15; | ||
| 79 | my $yheader = 25; | ||
| 80 | my $cyheader = 0; | ||
| 81 | |||
| 52 | while (<>) { | 82 | while (<>) { |
| 53 | my $line = $_; | 83 | my $line = $_; |
| 54 | if ($line =~ /([0-9\.]+)\] calling ([a-zA-Z0-9\_\.]+)\+/) { | 84 | if ($line =~ /([0-9\.]+)\] calling ([a-zA-Z0-9\_\.]+)\+/) { |
| @@ -112,15 +142,23 @@ if ($count == 0) { | |||
| 112 | print STDERR <<END; | 142 | print STDERR <<END; |
| 113 | No data found in the dmesg. Make sure that 'printk.time=1' and | 143 | No data found in the dmesg. Make sure that 'printk.time=1' and |
| 114 | 'initcall_debug' are passed on the kernel command line. | 144 | 'initcall_debug' are passed on the kernel command line. |
| 115 | Usage: | ||
| 116 | dmesg | perl scripts/bootgraph.pl > output.svg | ||
| 117 | END | 145 | END |
| 146 | help(1); | ||
| 118 | exit 1; | 147 | exit 1; |
| 119 | } | 148 | } |
| 120 | 149 | ||
| 121 | print "<?xml version=\"1.0\" standalone=\"no\"?> \n"; | 150 | print "<?xml version=\"1.0\" standalone=\"no\"?> \n"; |
| 122 | print "<svg width=\"2000\" height=\"100%\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n"; | 151 | print "<svg width=\"2000\" height=\"100%\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n"; |
| 123 | 152 | ||
| 153 | |||
| 154 | if ($header) { | ||
| 155 | my $version = `uname -a`; | ||
| 156 | my $date = `date`; | ||
| 157 | print "<text transform=\"translate($xheader,$yheader)\">Kernel version: $version</text>\n"; | ||
| 158 | $cyheader = $yheader+$headerstep; | ||
| 159 | print "<text transform=\"translate($xheader,$cyheader)\">Date: $date</text>\n"; | ||
| 160 | } | ||
| 161 | |||
| 124 | my @styles; | 162 | my @styles; |
| 125 | 163 | ||
| 126 | $styles[0] = "fill:rgb(0,0,255);fill-opacity:0.5;stroke-width:1;stroke:rgb(0,0,0)"; | 164 | $styles[0] = "fill:rgb(0,0,255);fill-opacity:0.5;stroke-width:1;stroke:rgb(0,0,0)"; |
