6 open F,"$pscmd|" or die "$pscmd: $!";
11 /^(?:\S+\s+){2}(\S+)\s+(?:\S+\s+){4}(\S+)/ or die $_;
14 $rsstotal+=$2 if $2 ne "RSS";
16 close F or die "$pscmd: $!";
17 my $head=delete $pid{"PID"} or die;
19 for my $pid (keys(%pid)) {
22 my $fn="/proc/$pid/smaps";
24 warn "$fn: $line: $!" if $line!~/ $pscmd$/;
28 $kb+=$1 if /^Swap:\s+(\d+) kB\n$/;
30 close F or die "$fn: $!";
31 push @{$swap{$kb}},$line;
35 printf "%10s %s",$kb,$line;
37 printfmt "SWAP",$head;
39 for my $kb (sort { $b<=>$a; } keys(%swap)) {
40 for my $line (@{$swap{$kb}}) {
45 print "SWAP total: $swaptotal\n";
46 print "RSS total: $rsstotal\n";