提交 bd727816 编写于 作者: V Vinayak Menon 提交者: Linus Torvalds

Documentation/trace/postprocess/trace-vmscan-postprocess.pl: fix the traceevent regex

When irq, preempt and lockdep fields are printed (field 3 in the example
below) in the trace output, the script fails.

An example entry:
  kswapd0-610   [000] ...1   158.112152: mm_vmscan_kswapd_wake: nid=0 order=0
Signed-off-by: NVinayak Menon <vinayakm.list@gmail.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 da8c757b
...@@ -123,7 +123,7 @@ my $regex_writepage; ...@@ -123,7 +123,7 @@ my $regex_writepage;
# Static regex used. Specified like this for readability and for use with /o # Static regex used. Specified like this for readability and for use with /o
# (process_pid) (cpus ) ( time ) (tpoint ) (details) # (process_pid) (cpus ) ( time ) (tpoint ) (details)
my $regex_traceevent = '\s*([a-zA-Z0-9-]*)\s*(\[[0-9]*\])\s*([0-9.]*):\s*([a-zA-Z_]*):\s*(.*)'; my $regex_traceevent = '\s*([a-zA-Z0-9-]*)\s*(\[[0-9]*\])(\s*[dX.][Nnp.][Hhs.][0-9a-fA-F.]*|)\s*([0-9.]*):\s*([a-zA-Z_]*):\s*(.*)';
my $regex_statname = '[-0-9]*\s\((.*)\).*'; my $regex_statname = '[-0-9]*\s\((.*)\).*';
my $regex_statppid = '[-0-9]*\s\(.*\)\s[A-Za-z]\s([0-9]*).*'; my $regex_statppid = '[-0-9]*\s\(.*\)\s[A-Za-z]\s([0-9]*).*';
...@@ -270,8 +270,8 @@ EVENT_PROCESS: ...@@ -270,8 +270,8 @@ EVENT_PROCESS:
while ($traceevent = <STDIN>) { while ($traceevent = <STDIN>) {
if ($traceevent =~ /$regex_traceevent/o) { if ($traceevent =~ /$regex_traceevent/o) {
$process_pid = $1; $process_pid = $1;
$timestamp = $3; $timestamp = $4;
$tracepoint = $4; $tracepoint = $5;
$process_pid =~ /(.*)-([0-9]*)$/; $process_pid =~ /(.*)-([0-9]*)$/;
my $process = $1; my $process = $1;
...@@ -299,7 +299,7 @@ EVENT_PROCESS: ...@@ -299,7 +299,7 @@ EVENT_PROCESS:
$perprocesspid{$process_pid}->{MM_VMSCAN_DIRECT_RECLAIM_BEGIN}++; $perprocesspid{$process_pid}->{MM_VMSCAN_DIRECT_RECLAIM_BEGIN}++;
$perprocesspid{$process_pid}->{STATE_DIRECT_BEGIN} = $timestamp; $perprocesspid{$process_pid}->{STATE_DIRECT_BEGIN} = $timestamp;
$details = $5; $details = $6;
if ($details !~ /$regex_direct_begin/o) { if ($details !~ /$regex_direct_begin/o) {
print "WARNING: Failed to parse mm_vmscan_direct_reclaim_begin as expected\n"; print "WARNING: Failed to parse mm_vmscan_direct_reclaim_begin as expected\n";
print " $details\n"; print " $details\n";
...@@ -322,7 +322,7 @@ EVENT_PROCESS: ...@@ -322,7 +322,7 @@ EVENT_PROCESS:
$perprocesspid{$process_pid}->{HIGH_DIRECT_RECLAIM_LATENCY}[$index] = "$order-$latency"; $perprocesspid{$process_pid}->{HIGH_DIRECT_RECLAIM_LATENCY}[$index] = "$order-$latency";
} }
} elsif ($tracepoint eq "mm_vmscan_kswapd_wake") { } elsif ($tracepoint eq "mm_vmscan_kswapd_wake") {
$details = $5; $details = $6;
if ($details !~ /$regex_kswapd_wake/o) { if ($details !~ /$regex_kswapd_wake/o) {
print "WARNING: Failed to parse mm_vmscan_kswapd_wake as expected\n"; print "WARNING: Failed to parse mm_vmscan_kswapd_wake as expected\n";
print " $details\n"; print " $details\n";
...@@ -356,7 +356,7 @@ EVENT_PROCESS: ...@@ -356,7 +356,7 @@ EVENT_PROCESS:
} elsif ($tracepoint eq "mm_vmscan_wakeup_kswapd") { } elsif ($tracepoint eq "mm_vmscan_wakeup_kswapd") {
$perprocesspid{$process_pid}->{MM_VMSCAN_WAKEUP_KSWAPD}++; $perprocesspid{$process_pid}->{MM_VMSCAN_WAKEUP_KSWAPD}++;
$details = $5; $details = $6;
if ($details !~ /$regex_wakeup_kswapd/o) { if ($details !~ /$regex_wakeup_kswapd/o) {
print "WARNING: Failed to parse mm_vmscan_wakeup_kswapd as expected\n"; print "WARNING: Failed to parse mm_vmscan_wakeup_kswapd as expected\n";
print " $details\n"; print " $details\n";
...@@ -366,7 +366,7 @@ EVENT_PROCESS: ...@@ -366,7 +366,7 @@ EVENT_PROCESS:
my $order = $3; my $order = $3;
$perprocesspid{$process_pid}->{MM_VMSCAN_WAKEUP_KSWAPD_PERORDER}[$order]++; $perprocesspid{$process_pid}->{MM_VMSCAN_WAKEUP_KSWAPD_PERORDER}[$order]++;
} elsif ($tracepoint eq "mm_vmscan_lru_isolate") { } elsif ($tracepoint eq "mm_vmscan_lru_isolate") {
$details = $5; $details = $6;
if ($details !~ /$regex_lru_isolate/o) { if ($details !~ /$regex_lru_isolate/o) {
print "WARNING: Failed to parse mm_vmscan_lru_isolate as expected\n"; print "WARNING: Failed to parse mm_vmscan_lru_isolate as expected\n";
print " $details\n"; print " $details\n";
...@@ -387,7 +387,7 @@ EVENT_PROCESS: ...@@ -387,7 +387,7 @@ EVENT_PROCESS:
} }
$perprocesspid{$process_pid}->{HIGH_NR_CONTIG_DIRTY} += $nr_contig_dirty; $perprocesspid{$process_pid}->{HIGH_NR_CONTIG_DIRTY} += $nr_contig_dirty;
} elsif ($tracepoint eq "mm_vmscan_lru_shrink_inactive") { } elsif ($tracepoint eq "mm_vmscan_lru_shrink_inactive") {
$details = $5; $details = $6;
if ($details !~ /$regex_lru_shrink_inactive/o) { if ($details !~ /$regex_lru_shrink_inactive/o) {
print "WARNING: Failed to parse mm_vmscan_lru_shrink_inactive as expected\n"; print "WARNING: Failed to parse mm_vmscan_lru_shrink_inactive as expected\n";
print " $details\n"; print " $details\n";
...@@ -397,7 +397,7 @@ EVENT_PROCESS: ...@@ -397,7 +397,7 @@ EVENT_PROCESS:
my $nr_reclaimed = $4; my $nr_reclaimed = $4;
$perprocesspid{$process_pid}->{HIGH_NR_RECLAIMED} += $nr_reclaimed; $perprocesspid{$process_pid}->{HIGH_NR_RECLAIMED} += $nr_reclaimed;
} elsif ($tracepoint eq "mm_vmscan_writepage") { } elsif ($tracepoint eq "mm_vmscan_writepage") {
$details = $5; $details = $6;
if ($details !~ /$regex_writepage/o) { if ($details !~ /$regex_writepage/o) {
print "WARNING: Failed to parse mm_vmscan_writepage as expected\n"; print "WARNING: Failed to parse mm_vmscan_writepage as expected\n";
print " $details\n"; print " $details\n";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册