add display for minor and major faults

This commit is contained in:
Zane C. B-H 2019-08-22 17:19:35 -05:00
parent d0a1764346
commit 00126c41e7
2 changed files with 48 additions and 2 deletions

View File

@ -18,6 +18,10 @@ sub help{
-m <pctmem> Memory usage percent to search for. -m <pctmem> Memory usage percent to search for.
--mi Invert the memory usage search. --mi Invert the memory usage search.
-f Show minor faults.
-F Show major faults.
-p <pctcpu> CPU usage percent to search for. -p <pctcpu> CPU usage percent to search for.
--pi Invert the CPU usage search. --pi Invert the CPU usage search.
@ -66,6 +70,8 @@ my $time_string;
my $time_invert=0; my $time_invert=0;
my $states_string; my $states_string;
my $states_invert=0; my $states_invert=0;
my $minor_faults=0;
my $major_faults=0;
# get the commandline options # get the commandline options
Getopt::Long::Configure ('no_ignore_case'); Getopt::Long::Configure ('no_ignore_case');
@ -94,6 +100,8 @@ GetOptions(
'ti' => \$time_invert, 'ti' => \$time_invert,
'st=s' => \$states_string, 'st=s' => \$states_string,
'sti' => \$states_invert, 'sti' => \$states_invert,
'f' => \$minor_faults,
'F' => \$major_faults,
); );
# print the version info if requested # print the version info if requested
@ -235,6 +243,8 @@ if ( defined( $states_string ) ){
my $args={ my $args={
invert=>0, invert=>0,
major_faults=>$major_faults,
minor_faults=>$minor_faults,
match=>{ match=>{
checks=>\@filters, checks=>\@filters,
} }

View File

@ -44,6 +44,8 @@ sub new {
my $self = { my $self = {
invert=>0, invert=>0,
match=>undef, match=>undef,
minor_faults=>0,
major_faults=>0,
colors=>[ colors=>[
'BRIGHT_YELLOW', 'BRIGHT_YELLOW',
'BRIGHT_CYAN', 'BRIGHT_CYAN',
@ -69,6 +71,14 @@ sub new {
$self->{match}=Proc::ProcessTable::Match->new( $args{match} ); $self->{match}=Proc::ProcessTable::Match->new( $args{match} );
} }
if ( defined( $args{major_faults} ) ){
$self->{major_faults}=$args{major_faults};
}
if ( defined( $args{minor_faults} ) ){
$self->{minor_faults}=$args{minor_faults};
}
return $self; return $self;
} }
@ -144,18 +154,30 @@ sub run{
push( @headers, 'RSS' ); push( @headers, 'RSS' );
$tb->set_column_style($header_int, pad => 0); $header_int++; $tb->set_column_style($header_int, pad => 0); $header_int++;
push( @headers, 'Info' ); push( @headers, 'Info' );
# add # add nice if needed
if ( $have_nice ){ if ( $have_nice ){
push( @headers, 'Nic' ); push( @headers, 'Nic' );
if (( $header_int % 2 ) != 0){ $padding=1; }else{ $padding=0; } if (( $header_int % 2 ) != 0){ $padding=1; }else{ $padding=0; }
$tb->set_column_style($header_int, pad => $padding ); $header_int++; $tb->set_column_style($header_int, pad => $padding ); $header_int++;
} }
# add # add priority if needed
if ( $have_pri ){ if ( $have_pri ){
push( @headers, 'Pri' ); push( @headers, 'Pri' );
if (( $header_int % 2 ) != 0){ $padding=1; }else{ $padding=0; } if (( $header_int % 2 ) != 0){ $padding=1; }else{ $padding=0; }
$tb->set_column_style($header_int, pad => $padding ); $header_int++; $tb->set_column_style($header_int, pad => $padding ); $header_int++;
} }
# add major faults if needed
if ( $self->{major_faults} ){
push( @headers, 'MajF' );
if (( $header_int % 2 ) != 0){ $padding=1; }else{ $padding=0; }
$tb->set_column_style($header_int, pad => $padding ); $header_int++;
}
# add minor faults if needed
if ( $self->{minor_faults} ){
push( @headers, 'minF' );
if (( $header_int % 2 ) != 0){ $padding=1; }else{ $padding=0; }
$tb->set_column_style($header_int, pad => $padding ); $header_int++;
}
if (( $header_int % 2 ) != 0){ $padding=1; }else{ $padding=0; } if (( $header_int % 2 ) != 0){ $padding=1; }else{ $padding=0; }
$tb->set_column_style($header_int, pad => $padding ); $header_int++; $tb->set_column_style($header_int, pad => $padding ); $header_int++;
push( @headers, 'Start' ); push( @headers, 'Start' );
@ -336,6 +358,20 @@ sub run{
push( @new_line, color($self->nextColor).$proc->{priority}.color('reset') ); push( @new_line, color($self->nextColor).$proc->{priority}.color('reset') );
} }
#
# major faults
#
if ( $self->{major_faults} ){
push( @new_line, color($self->nextColor).$proc->{majflt}.color('reset') );
}
#
# major faults
#
if ( $self->{minor_faults} ){
push( @new_line, color($self->nextColor).$proc->{minflt}.color('reset') );
}
# #
# handles the start column # handles the start column
# #