Update parse_schedtop to accomodate fields: D, bmax, cgroup
The 'schedtop' engineering tool has been updated to display new fields: D, bmax, and cgroup. The 'parse_schedtop' parser requires changes to post-process new output format. This tool is used for System Engineering analysis of cpu, disk IO, and scheduling performance. Partial-Bug: 2084714 TEST PLAN: - AIO-SX: Fresh install - AIO-SX: Collect new schedtop data and off-board verify parser works ./parse_schedtop file_schedtop ./parse_schedtop --detail --field=occ,delay,dmax,bmax --tab=kube-apiserver \ --excl=schedtop file_schedtop Change-Id: I8c84e21dca26f88785526315e30ee6c25adf2a2a Signed-off-by: Jim Gauld <James.Gauld@windriver.com>
This commit is contained in:
parent
896f2eb78f
commit
d601d7d950
@ -77,6 +77,7 @@ our %families = (
|
|||||||
ldavg => {scale => "none", agg => "dtsum", un => "(#)", fmtT => "%6s", fmt => "%6.2f", w => 1, div => 1, idx => 1},
|
ldavg => {scale => "none", agg => "dtsum", un => "(#)", fmtT => "%6s", fmt => "%6.2f", w => 1, div => 1, idx => 1},
|
||||||
runq => {scale => "none", agg => "dtsum", un => "(#)", fmtT => "%4s", fmt => "%4.0f", w => 1, div => 1, idx => 2},
|
runq => {scale => "none", agg => "dtsum", un => "(#)", fmtT => "%4s", fmt => "%4.0f", w => 1, div => 1, idx => 2},
|
||||||
blk => {scale => "none", agg => "dtsum", un => "(#)", fmtT => "%3s", fmt => "%3.0f", w => 1, div => 1, idx => 3},
|
blk => {scale => "none", agg => "dtsum", un => "(#)", fmtT => "%3s", fmt => "%3.0f", w => 1, div => 1, idx => 3},
|
||||||
|
D => {scale => "none", agg => "dtsum", un => "(#)", fmtT => "%3s", fmt => "%3.0f", w => 1, div => 1, idx => 4},
|
||||||
},
|
},
|
||||||
MiB => {
|
MiB => {
|
||||||
Tot => {scale => "none", agg => "dtsum", un => "(MiB)", fmtT => "%7s", fmt => "%7.1f", w => 1, div => 1, idx => 1},
|
Tot => {scale => "none", agg => "dtsum", un => "(MiB)", fmtT => "%7s", fmt => "%7.1f", w => 1, div => 1, idx => 1},
|
||||||
@ -117,6 +118,10 @@ our %families = (
|
|||||||
delay => {scale => "none", agg => "ctxt", un => "(ms)", fmtT => "%7s", fmt => "%7.1f", w => 1, div => 1, idx => 3},
|
delay => {scale => "none", agg => "ctxt", un => "(ms)", fmtT => "%7s", fmt => "%7.1f", w => 1, div => 1, idx => 3},
|
||||||
dmax => {scale => "none", agg => "max", un => "(ms)", fmtT => "%7s", fmt => "%7.1f", w => 1, div => 1, idx => 4},
|
dmax => {scale => "none", agg => "max", un => "(ms)", fmtT => "%7s", fmt => "%7.1f", w => 1, div => 1, idx => 4},
|
||||||
},
|
},
|
||||||
|
block => {
|
||||||
|
bmax => {scale => "none", agg => "max", un => "(ms)", fmtT => "%7s", fmt => "%7.1f", w => 1, div => 1, idx => 1},
|
||||||
|
age => {scale => "none", agg => "dtsum", un => "(s)", fmtT => "%3s", fmt => "%3.0f", w => 1, div => 1, idx => 2},
|
||||||
|
},
|
||||||
io => {
|
io => {
|
||||||
iowait => {scale => "none", agg => "dtsum", un => "(%)", fmtT => "%7s", fmt => "%7.2f", w => 2, div => 1, idx => 0},
|
iowait => {scale => "none", agg => "dtsum", un => "(%)", fmtT => "%7s", fmt => "%7.2f", w => 2, div => 1, idx => 0},
|
||||||
iowt => {scale => "none", agg => "dtsum", un => "(%)", fmtT => "%7s", fmt => "%7.2f", w => 2, div => 1, idx => 1},
|
iowt => {scale => "none", agg => "dtsum", un => "(%)", fmtT => "%7s", fmt => "%7.2f", w => 2, div => 1, idx => 1},
|
||||||
@ -143,9 +148,10 @@ our %families = (
|
|||||||
},
|
},
|
||||||
cmd => {
|
cmd => {
|
||||||
wchan => {scale => "none", agg => "none", un => "(str)", fmtT => "%16s", fmt => "%16s", w => 1, div => 1, idx => 1},
|
wchan => {scale => "none", agg => "none", un => "(str)", fmtT => "%16s", fmt => "%16s", w => 1, div => 1, idx => 1},
|
||||||
comm => {scale => "none", agg => "none", un => "(name)", fmtT => "%16", fmt => "%16s", w => 1, div => 1, idx => 2},
|
cgroup => {scale => "none", agg => "none", un => "(str)", fmtT => "%16s", fmt => "%16s", w => 1, div => 1, idx => 2},
|
||||||
cmdline => {scale => "none", agg => "none", un => "(name)", fmtT => "%s", fmt => "%s", w => 1, div => 1, idx => 3},
|
comm => {scale => "none", agg => "none", un => "(name)", fmtT => "%16", fmt => "%16s", w => 1, div => 1, idx => 3},
|
||||||
COMMAND => {scale => "none", agg => "none", un => "(name)", fmtT => "%s", fmt => "%s", w => 1, div => 1, idx => 4},
|
cmdline => {scale => "none", agg => "none", un => "(name)", fmtT => "%s", fmt => "%s", w => 1, div => 1, idx => 4},
|
||||||
|
COMMAND => {scale => "none", agg => "none", un => "(name)", fmtT => "%s", fmt => "%s", w => 1, div => 1, idx => 5},
|
||||||
},
|
},
|
||||||
misc => {
|
misc => {
|
||||||
cnt => {scale => "none", agg => "none", un => "(#)", fmtT => "%5s", fmt => "%5d", w => 1, div => 1, idx => 1},
|
cnt => {scale => "none", agg => "none", un => "(#)", fmtT => "%5s", fmt => "%5d", w => 1, div => 1, idx => 1},
|
||||||
@ -171,7 +177,7 @@ for (my $core=0; $core <= $MAX_CORES; $core++) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Selected field parameters
|
# Selected field parameters
|
||||||
our @select_families = ('cpu', 'del', 'io', 'mem'); # overall average mode
|
our @select_families = ('cpu', 'del', 'block', 'io', 'mem'); # overall average mode
|
||||||
our @select_fields = ('cpu'); # time-series mode
|
our @select_fields = ('cpu'); # time-series mode
|
||||||
our %select_H = ();
|
our %select_H = ();
|
||||||
our %select_F = ();
|
our %select_F = ();
|
||||||
@ -357,7 +363,7 @@ sub aggregate_time_series {
|
|||||||
my @per_core_T = (); my $per_core_N = ();
|
my @per_core_T = (); my $per_core_N = ();
|
||||||
my @per_core_x = (); my @per_core_tot = ();
|
my @per_core_x = (); my @per_core_tot = ();
|
||||||
my @per_task_T = (); my @per_task_x = (); my $per_task_N = ();
|
my @per_task_T = (); my @per_task_x = (); my $per_task_N = ();
|
||||||
my ($tstamp, $ldavg, $runq, $blk, $del, $ignore) = ();
|
my ($tstamp, $ldavg, $runq, $blk, $D, $del, $ignore) = ();
|
||||||
my ($yy, $month, $day, $hh, $mm, $ss, $frac);
|
my ($yy, $month, $day, $hh, $mm, $ss, $frac);
|
||||||
my @overall = ();
|
my @overall = ();
|
||||||
|
|
||||||
@ -365,8 +371,8 @@ sub aggregate_time_series {
|
|||||||
READ_LOOP: while ($_ = <FILE>) {
|
READ_LOOP: while ($_ = <FILE>) {
|
||||||
s/[\0\e\f\r\a]//g; chomp; # strip control characters if any
|
s/[\0\e\f\r\a]//g; chomp; # strip control characters if any
|
||||||
|
|
||||||
if (/^schedtop\s+\S+\s+\-\-\s+(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}\.\d{3})\s+dt:\s*(\S+)\s+ms\s+ldavg:(\S+),\s+\S+,\s+\S+\s+runq:(\d+)\s+blk:(\d+)\s+/) { # header line
|
if (/^schedtop\s+\S+\s+\-\-\s+(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}\.\d{3})\s+dt:\s*(\S+)\s+ms\s+ldavg:(\S+),\s+\S+,\s+\S+\s+runq:(\d+)\s+blk:(\d+)\s+D:(\d+)\s+/) { # header line
|
||||||
$tstamp = $1; $dt = $2/1000.0; $ldavg = $3; $runq = $4; $blk = $5;
|
$tstamp = $1; $dt = $2/1000.0; $ldavg = $3; $runq = $4; $blk = $5; $D = $6;
|
||||||
$del = 0.0; $ignore = 0; @overall = ();
|
$del = 0.0; $ignore = 0; @overall = ();
|
||||||
|
|
||||||
$_ = $tstamp;
|
$_ = $tstamp;
|
||||||
@ -407,6 +413,7 @@ sub aggregate_time_series {
|
|||||||
$sample{'ldavg'} = $ldavg;
|
$sample{'ldavg'} = $ldavg;
|
||||||
$sample{'runq'} = $runq;
|
$sample{'runq'} = $runq;
|
||||||
$sample{'blk'} = $blk;
|
$sample{'blk'} = $blk;
|
||||||
|
$sample{'D'} = $D;
|
||||||
|
|
||||||
$group = 'ov'; $family = 'MiB';
|
$group = 'ov'; $family = 'MiB';
|
||||||
foreach $field (keys %{ $::families{$group}{$family} }) { $sample{$field} = 0.0; }
|
foreach $field (keys %{ $::families{$group}{$family} }) { $sample{$field} = 0.0; }
|
||||||
|
Loading…
Reference in New Issue
Block a user