Hello community,

here is the log from the commit of package collectl for openSUSE:Factory 
checked in at 2018-09-07 15:40:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/collectl (Old)
 and      /work/SRC/openSUSE:Factory/.collectl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "collectl"

Fri Sep  7 15:40:06 2018 rev:32 rq:633503 version:4.3.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/collectl/collectl.changes        2018-09-04 
22:58:05.473394317 +0200
+++ /work/SRC/openSUSE:Factory/.collectl.new/collectl.changes   2018-09-07 
15:40:09.646487436 +0200
@@ -1,0 +2,19 @@
+Tue Sep  4 18:02:00 UTC 2018 - tabra...@suse.com
+
+- Update to 4.3.0
+  + disable -sL, should have been done at same time -sl was
+ 
+- Changes from 4.2.0
+  + Updated Plotfile docs to explain why you shouldn't leave off the -f
+    when using -P [thanks Bayard]
+  + added support for InfiniBand OPA V4 to read start from /sys instead of
+    having to rely on perfquery for 64 bit counters. [thanks frederic]
+  + removed previos bug introduced in V4.1.2 that was not properly calculating
+    disk summaries. If you do have any raw files collected with this version
+    you WILL be able to play them back properly or create and plot files with
+    this version
+  + although I'm stil leaving the lustre code in place because there is so much
+    of it, I did remove cciss disk types from non-lustre code
+  + finally removed col2tlviz from kit [thanks tom]
+
+-------------------------------------------------------------------

Old:
----
  collectl-4.1.3.src.tar.gz

New:
----
  collectl-4.3.0.src.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ collectl.spec ++++++
--- /var/tmp/diff_new_pack.qOOqrd/_old  2018-09-07 15:40:10.174486870 +0200
+++ /var/tmp/diff_new_pack.qOOqrd/_new  2018-09-07 15:40:10.174486870 +0200
@@ -17,12 +17,12 @@
 
 
 Name:           collectl
-Version:        4.1.3
+Version:        4.3.0
 Release:        0
 Summary:        Collects data that describes the current system status
-License:        Artistic-1.0 AND GPL-2.0-or-later
+License:        Artistic-1.0 and GPL-2.0-or-later
 Group:          System/Monitoring
-URL:            http://collectl.sourceforge.net
+Url:            http://collectl.sourceforge.net
 Source0:        
http://sourceforge.net/projects/collectl/files/collectl/%{name}-%{version}/%{name}-%{version}.src.tar.gz
 Source1:        collectl.service
 Source2:        collectl.sysconfig
@@ -31,6 +31,10 @@
 BuildArch:      noarch
 %{?systemd_requires}
 
+%if ! %{defined _fillupdir}
+%define _fillupdir /var/adm/fillup-templates
+%endif
+
 %description
 Unlike most monitoring tools that either focus on a small set of
 statistics, format their output in only one way, run either
@@ -78,7 +82,11 @@
 %service_del_postun %{name}.service
 
 %files
+%if 0%{?sle_version} <= 120200
+%doc COPYING ARTISTIC GPL
+%else
 %license COPYING ARTISTIC GPL
+%endif
 %doc docs/* README RELEASE-collectl
 %{_unitdir}/collectl.service
 %{_fillupdir}/sysconfig.collectl
@@ -88,8 +96,8 @@
 %{_sbindir}/collectl
 %{_sbindir}/rccollectl
 %{_datadir}/collectl
-%{_mandir}/man1/collectl.1%{?ext_man}
-%{_mandir}/man1/colmux.1%{?ext_man}
+%{_mandir}/man1/collectl.1.gz
+%{_mandir}/man1/colmux.1.gz
 %dir %{_var}/log/%{name}
 
 %changelog

++++++ collectl-4.1.3.src.tar.gz -> collectl-4.3.0.src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/collectl-4.1.3/INSTALL new/collectl-4.3.0/INSTALL
--- old/collectl-4.1.3/INSTALL  2017-04-10 20:38:40.000000000 +0200
+++ new/collectl-4.3.0/INSTALL  2017-12-15 16:17:37.000000000 +0100
@@ -38,7 +38,6 @@
 cp vmstat.ph             $SHRDIR
 cp vnet.ph vmsum.ph      $SHRDIR
 cp client.pl             $SHRDIR/util
-cp col2tlviz.pl          $SHRDIR/util
 
 # Force in case redoing the install and files already zipped
 gzip -f $MANDIR/collectl*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/collectl-4.1.3/RELEASE-collectl 
new/collectl-4.3.0/RELEASE-collectl
--- old/collectl-4.1.3/RELEASE-collectl 2017-04-10 20:38:40.000000000 +0200
+++ new/collectl-4.3.0/RELEASE-collectl 2017-12-15 16:17:37.000000000 +0100
@@ -27,6 +27,22 @@
 
 COLLECTL CHANGES
 
+4.3.0    Oct 3, 2017
+  - disable -sL, should have been done at same time -sl was
+
+4.2.0    Jun 12, 2017
+  - Updated Plotfile docs to explain why you shouldn't leave off the -f
+    when using -P [thanks Bayard]
+  - added support for InfiniBand OPA V4 to read start from /sys instead of
+    having to rely on perfquery for 64 bit counters. [thanks frederic]
+  - removed previos bug introduced in V4.1.2 that was not properly calculating
+    disk summaries. If you do have any raw files collected with this version
+    you WILL be able to play them back properly or create and plot files with
+    this version
+  - although I'm stil leaving the lustre code in place because there is so much
+    of it, I did remove cciss disk types from non-lustre code
+  - finally removed col2tlviz from kit [thanks tom]
+
 4.1.3   Apr 10, 2017
   - throws 'unit var' building distro on openSUSE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/collectl-4.1.3/col2tlviz.pl 
new/collectl-4.3.0/col2tlviz.pl
--- old/collectl-4.1.3/col2tlviz.pl     2017-04-10 20:38:40.000000000 +0200
+++ new/collectl-4.3.0/col2tlviz.pl     1970-01-01 01:00:00.000000000 +0100
@@ -1,113 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2003-2009 Hewlett-Packard Development Company, L.P.
-
-# Revision history (some of)
-#1.2.0 Convert alphabetic fields to 0s, which at this point are only for DSK 
and NET
-
-use Config;
-use Getopt::Std;
-use File::Basename;
-use strict;
-
-my $Version="1.2.0";
-my $Copyright='Copyright 2003-2008 Hewlett-Packard Development Company, L.P.';
-
-my $pcFlag=($Config{"osname"}=~/MSWin32/) ? 1 : 0;
-my $SEP=($pcFlag) ? '\\' : '/';
-
-our ($opt_h, $opt_i, $opt_o, $opt_v);
-my  ($inspec, $outdir);
-getopts('hi:o:v');
-$inspec=$opt_i    if defined($opt_i);
-$outdir=$opt_o    if defined($opt_o);
-
-if (defined($opt_v))
-{
-  print "col2tlviz V$Version\n";
-  print "$Copyright\n";
-  exit;
-}
-
-if (defined($opt_h) || !defined($inspec))
-{
-  print "usage: col2tlv.pl -i filespec [-o dirname] [-v]\n";
-  print "$Copyright\n";
-  exit;
-}
-
-error("output directory doesn't exist")    if defined($outdir) && !-e $outdir;
-
-my @files;
-my $glob=$inspec;
-my $skipped=0;
-@files=glob($glob);
-foreach my $file (@files)
-{
-  if ($file!~/tab$|cpu$|dsk$|net$|nfs$/)
-  {
-    $skipped++;
-    next;
-  }
-
-  open IN, "<$file" or error("Couldn't open '$file'");
-
-  my $outfile="$file.csv";
-  $outfile="$outdir$SEP".basename($outfile)    if defined($outdir);
-  open OUT, ">$outfile" or error("Couldn't create '$outfile'");
-  print "Creating: $outfile\n";
-
-  my $state=0;
-  my $header='';
-  while (my $line=<IN>)
-  {
-    if ($line=~/^#Date/)
-    {
-      cvtHeader(\$header);
-
-      $state=1;
-      $line=~s/ /,/g;
-      $line=~s/#Date,Time(.*),?$/Sample Time$1/;  # also get rid of optional 
trailing comma!
-      print OUT $line;
-      next;
-    }
-
-    if ($state==0)
-    {
-      $header.=$line;
-      next;
-    }
-
-    my ($date, $time, $therest)=split(/ /, $line, 3);
-    my $year=substr($date, 0, 4);
-    my $mon= substr($date, 4, 2);
-    my $day=substr($date, 6, 2);
-
-    my $month=substr('JanFebMarAprMayJunJulAugSepOctNovDec', ($mon-1)*3, 3);
-    my $newdate="$day-$month-$year";
-
-    $therest=~s/ /,/g;
-    $therest=~s/[a-z].*?,/0,/g;    # for DSK and NET files, this will convert 
instance names to 0's
-    print OUT "$newdate $time,$therest";
-  }
-}
-print "skipped $skipped file(s) that did not extension(s): 
tab,cpu,dsk,net,nfs\n"    if $skipped;
-
-sub cvtHeader
-{
-  my $hdrref=shift;
-
-  $$hdrref=~s/##.*//g;
-  $$hdrref=~s/#\s+(.*)/"$1",/g;
-  $$hdrref=~s/[\n\r]+//g;
-  $$hdrref=~s/,$//;
-  $$hdrref=~/Host:\s+(\S+)/;
-  $$hdrref="$1,$$hdrref\n";
-  print OUT $$hdrref;
-}
-
-sub error
-{
-  print "$_[0]\n";
-  exit;
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/collectl-4.1.3/collectl new/collectl-4.3.0/collectl
--- old/collectl-4.1.3/collectl 2017-04-10 20:38:40.000000000 +0200
+++ new/collectl-4.3.0/collectl 2017-12-15 16:17:37.000000000 +0100
@@ -111,7 +111,7 @@
 $rootFlag=(!$PcFlag && `whoami`=~/root/) ? 1 : 0;
 $SrcArch= $Config{"archname"};
 
-$Version=  '4.1.3-1';
+$Version=  '4.3.0-1';
 $Copyright='Copyright 2003-2017 Hewlett-Packard Development Company, L.P.';
 $License=  "collectl may be copied only under the terms of either the Artistic 
License\n";
 $License.= "or the GNU General Public License, which may be found in the 
source kit";
@@ -160,6 +160,7 @@
 undef %disks;
 undef @HCAName;
 undef @HCAPorts;
+undef @HCAOpaV4;
 undef @HCAId;
 undef %networks;
 undef @dskIndexAvail;
@@ -222,7 +223,7 @@
 $DiskMaxValue=-1;    # disabled
 
 # NOTE - the following line should match what is in collectl.conf.  If 
uncommented there, it will be replaced
-$DiskFilter='cciss/c\d+d\d+ |hd[ab] | sd[a-z]+ |dm-\d+ |xvd[a-z] |fio[a-z]+ | 
vd[a-z]+ |emcpower[a-z]+ |psv\d+ |nvme\d+n\d+ ';
+$DiskFilter='hd[ab] | sd[a-z]+ |dm-\d+ |xvd[a-z] |fio[a-z]+ | vd[a-z]+ 
|emcpower[a-z]+ |psv\d+ |nvme\d+n\d+ ';
 $DiskFilterFlag=0;   # only set when filter set in collectl.conf
 $ProcReadTest='yes';
 
@@ -231,7 +232,7 @@
 
 # These aren't user settable but are needed to build the list of ALL valid
 # subsystems
-$SubsysDet=   "BCDEFJLMNTXYZ";
+$SubsysDet=   "BCDEFJMNTXYZ";
 $SubsysExcore='y';
 
 # These are the subsystems allowed in brief mode
@@ -1047,7 +1048,6 @@
 }
 
 undef %diskRemap;
-$diskRemap{'cciss\/'}='';
 foreach my $remap (split(/,/, $dskRemap))
 {
   my ($pat, $sub) = split(/:/, $remap);
@@ -2975,28 +2975,36 @@
            # only read if port active
             if ($HCAPorts[$i][$j])
            {
-             if ($HCAName[$i]=~/hfi/)
+             # for OPA V4, /sys counters always 64 bits
+             if ($HCAOpaV4[$i][$j])
+             {
+               my $proc="$SysIB/$HCAName[$i]0/ports/$j/counters";
+               getProc(0, "$proc/port_rcv_data",     "ib$i-$j:rcvd");
+               getProc(0, "$proc/port_xmit_data",    "ib$i-$j:xmtd");
+               getProc(0, "$proc/port_rcv_packets",  "ib$i-$j:rcvp");
+               getProc(0, "$proc/port_xmit_packets", "ib$i-$j:xmtp");
+             }
+
+             elsif ($HCAName[$i]=~/hfi/)
              {
                getExec(5, "/sbin/opapmaquery -h $HCAId[$i] -p $j -o 
getdatacounters", "ib$i-$j:opa");
              }
-             else
+
+             # non-opa V4 counters but present in /sys, counters come from 
counters_ext
+             elsif ($PQopt eq 'sys')
              {
-                # 64 bit counters always come from /sys
-               my $proc="$SysIB/$HCAName[$i]$i/ports/$j/counters_ext";
-               if ($PQopt eq 'sys')
-               {
-                 getProc(0, "$proc/port_rcv_data_64",     "ib$i-$j:rcvd");
-                 getProc(0, "$proc/port_xmit_data_64",    "ib$i-$j:xmtd");
-                 getProc(0, "$proc/port_rcv_packets_64",  "ib$i-$j:rcvp");
-                 getProc(0, "$proc/port_xmit_packets_64", "ib$i-$j:xmtp");
-               }
-
-               # we only use perfquery for 32bit counters or 64 when not in 
-               # available in sys and then only if perfquery hasn't been 
disabled
-               elsif ( -e $PQuery )
-               {
-                 getExec(1, "$PQuery $PQopt -C $HCAId[$i] -P $j", 
"ib$i-$j:pquery");
-                }
+               my $proc="$SysIB/$HCAName[$i]$i/ports/$j/counters_ext";
+               getProc(0, "$proc/port_rcv_data_64",     "ib$i-$j:rcvd");
+               getProc(0, "$proc/port_xmit_data_64",    "ib$i-$j:xmtd");
+               getProc(0, "$proc/port_rcv_packets_64",  "ib$i-$j:rcvp");
+               getProc(0, "$proc/port_xmit_packets_64", "ib$i-$j:xmtp");
+             }
+
+             # we only use perfquery for 32bit counters or 64 when not in 
+             # available in sys and then only if perfquery hasn't been disabled
+             elsif ( -e $PQuery )
+             {
+               getExec(1, "$PQuery $PQopt -C $HCAId[$i] -P $j", 
"ib$i-$j:pquery");
              }
            }
           }
@@ -3593,7 +3601,7 @@
   # $temp1 contains any NEW subsys in current file, so add them to 'last'
   $lastSubSys.=$temp1;
 
-  $preprocErrors{$file}="E:-P and details to terminal not allowed"
+  $preprocErrors{$file}="E:-P and details to terminal from multiple raw files 
not allowed."
       if $lastSubSys=~/[A-Z]/ && $filename eq '' && $plotFlag;
  
   return($lastSubSys);  # has new sub-systems appended
@@ -3898,8 +3906,7 @@
 
     # /proc/diskstats & /proc/partitions
     # would be nice if we could improve even more since this table can
-    # get quite large.  Note the pattern for cciss MUST match that used
-    # in formatit.ph!!!
+    # get quite large.
     elsif ($type==9)
     {
       next    if $rawDskIgnore ne '' && $line=~/$rawDskIgnore/;
@@ -3909,7 +3916,6 @@
       # faster to as separate if statements
       if (!$DiskFilterFlag)
       {
-        if ($line=~/cciss\/c\d+d\d+ /)   { record(2, "$tag $line"); next; }
         if ($line=~/hd[ab] /)            { record(2, "$tag $line"); next; }
         if ($line=~/ sd[a-z]+ /)         { record(2, "$tag $line"); next; }
         if ($line=~/dm-\d+ /)            { record(2, "$tag $line"); next; }
@@ -6779,6 +6785,10 @@
   my $whatsnew=<<EOF6;
 What's new in collectl in the last year or so?
 
+version 4.2.0
+  - fixed bug in disk summary stats introduced in 4.1.2
+  - now reads Infiniband 64 bit counters from /sys when present
+
 version 4.1.1
   - added support for nvme disks
   - added packet loss and fast retransmissions for -st and renamed
@@ -6805,10 +6815,6 @@
 - added en as known network device name
 - lustre disabled (though code still there but will be removed soon)
 
-Version 4.0
-- added mlx5 as new IB device type
-- colmux now part of collectl distro
-
 EOF6
 
   printText($whatsnew);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/collectl-4.1.3/collectl.conf 
new/collectl-4.3.0/collectl.conf
--- old/collectl-4.1.3/collectl.conf    2017-04-10 20:38:40.000000000 +0200
+++ new/collectl-4.3.0/collectl.conf    2017-12-15 16:17:37.000000000 +0100
@@ -142,7 +142,7 @@
 # ignored.  To change the filter, set the string below to those you want to 
keep BUT
 # you need to know what a perl regular expression looks like or you may not 
get the
 # desired results.  CAUTION - white space is CRITICAL for this to work.
-#DiskFilter = /cciss/c\d+d\d+ |hd[ab] | sd[a-z]+ |dm-\d+ |xvd[a-z] |fio[a-z]+ 
| vd[a-z]+ |emcpower[a-z]+ |psv\d+ |nvme\d+n\d+ /
+#DiskFilter = /hd[ab] | sd[a-z]+ |dm-\d+ |xvd[a-z] |fio[a-z]+ | vd[a-z]+ 
|emcpower[a-z]+ |psv\d+ |nvme\d+n\d+ /
 
 # Kernel Efficiency Test
 # On kernels 2.6.32 forward (and you can't tell how distros patched) there is 
a read inefficiency
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/collectl-4.1.3/docs/Plotfiles.html 
new/collectl-4.3.0/docs/Plotfiles.html
--- old/collectl-4.1.3/docs/Plotfiles.html      2017-04-10 20:38:41.000000000 
+0200
+++ new/collectl-4.3.0/docs/Plotfiles.html      2017-12-15 16:17:37.000000000 
+0100
@@ -7,14 +7,16 @@
 <body>
 <center><h1>Plot Files</h1></center>
 <p>
-One of collectl's main features is its ability to generate files in a 
ready-to-plot format which
-is compatible with what gnuplot expects and there are actually 2 main types of 
files that it
+One of collectl's main features is its ability to generate output in a 
ready-to-plot format 
+and write that data to one or more files which
+are compatible with what gnuplot expects and there are actually 2 main types 
of files that it
 generates.  The first, which has an extension of <i>tab</i>, represents a 
table of all the summary
 data.  What makes this file unique is that all data elements are in a fixed 
set of columns - 
 some columns may get added over time, but for all intents and purposes, the 
set of data for say CPUs
 do not change regardless of how many CPUs are in the system.  The second type 
of files deal with 
 detail data, the amount of which changes with the number of instances so a 4 
CPU system will have 1/2
-the data an 8 CPU system has.  There is one file for each type of detail data.
+the data an 8 CPU system has.  There is one file for each type of detail data 
and like raw files you
+tell collectl where to put the plot files with -f.
 <p>
 Plot files can be generated in 2 ways and each has its own advantages as well 
as disadvantages.
 <ul>
@@ -24,6 +26,11 @@
 for conversion of raw file</li>
 </ul>
 
+<b>Caution</b> - though one can leave off -f and have collectl write its plot 
formatted output to the
+terminal, this should be avoided unless there is a specific need. In fact, 
since multiple detail files
+from multiple systems can actually contain different numbers of columns, 
collectl explcitly only allows
+generating detail plot data from a single raw file.
+<p>
 At first glance, it sounds like you'd always want to generate plot files 
directly since you avoid
 the need for the conversion step, but you should also realize a few things 
about this methodology:
 <ul>
@@ -183,7 +190,7 @@
 can also choose to write a post-processing script that merges these into a 
single file with
 zero-filled columns where there is missing data.
 
-<table width=100%><tr><td align=right><i>updated June 4, 
2009</i></td></tr></colgroup></table>
+<table width=100%><tr><td align=right><i>updated June 9, 
2017</i></td></tr></colgroup></table>
 
 </body>
 </html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/collectl-4.1.3/formatit.ph 
new/collectl-4.3.0/formatit.ph
--- old/collectl-4.1.3/formatit.ph      2017-04-10 20:38:40.000000000 +0200
+++ new/collectl-4.3.0/formatit.ph      2017-12-15 16:17:37.000000000 +0100
@@ -311,8 +311,17 @@
         $opaFlag=1;
         ibCheck('');
       }
+    }
 
+    # OPA V4 exposes 64 it counters in /sys, bypassing the need for perfquery 
so we need to know
+    # since we can have a mix of montitoring methods for different HCAs we 
want to at least say once
+    # if V4 counters present.
+    my $ibV4Flag=0;
+    for (my $i=0; $i<$NumHCAs; $i++)
+    {
+      $ibV4Flag=1    if $HCAOpaV4[$i][1];
     }
+    print "Found OPA 64 bit counters in /sys\n"    if $debug & 1 && $ibV4Flag;
     disableSubsys('x', 'no interconnect or opa hardware/drivers found')    if 
$mellanoxFlag+$opaFlag==0;
 
     # User had ability to turn off in case they don't want destructive 
monitoring
@@ -3314,7 +3323,7 @@
   {
     ($major, $minor, $diskName, @dskFields)=split(/\s+/, $data);
 
-    # if using --dskremap (and also noting prepopulated with 'cciss/'), remap 
disk name
+    # if using --dskremap, remap disk name
     $diskName=diskRemapName($diskName);
 
     if (!defined($disks{$diskName}))
@@ -3383,16 +3392,16 @@
        $dskInProg[$dskIndex]=$dskTicks[$dskIndex]=$dskWeighted[$dskIndex]=0;
       }
 
-    # Apply filters to summary totals, explicitly ignoring those we don't want
+    # Apply filters to summary totals, explicitly ignoring dm and psv devices 
which we know contain
+    # duplicates and should never be considered as summary data. We also 
ignore other devices
+    # explicitly told to do so with '--dskfilt ^' which means to ignore
     if ($diskName!~/^dm-|^psv/ && ($dskFilt eq '' || 
$diskName!~/$dskFiltIgnore/))
     {
-      # if we're not filtering, we want to add all the disks to the summary 
except
-      # cciss and nvme disks whose basenames look like partitions and they're 
not!
-      # the partitions were already filtered out by the default disk filter.
-      # if we are filtering, anything that passes the filter will be reported, 
noting
-      # to report partition level stats one needs to use --rawdskfilt
-      if (($dskFiltKeep eq '' && ($diskName=~/c\dd\d$/ || $diskName=~/nvme/)) 
||
-          ($dskFiltKeep ne '' && $diskName=~/$dskFiltKeep/))
+      # Never include partitions in summary stats and we're using lookbehind 
to deal with nvme
+      # perl lookbehind makes my head explode but what we're doing is to 
ignore nvme partitions
+      # which is any device name that ends in a digit AND not preceded with 
'nvme\dn' in which
+      # case the digit is part of the device name. whew...
+      if ($diskName!~/(?<!nvme\dn)\d$/ && ($dskFiltKeep eq '' || 
$diskName=~/$dskFiltKeep/))
       {
         $dskReadTot+=      $dskRead[$dskIndex];
         $dskReadMrgTot+=   $dskReadMrg[$dskIndex];
@@ -4356,8 +4365,8 @@
     #   ib stats from /sys
     #######################
 
-    # as a optimization don't even look for these unless /sys
-    if ($PQopt eq 'sys')
+    # as a optimization don't even look for these unless OPA V4 or /sys
+    if ($HCAOpaV4[$i][$port] || $PQopt eq 'sys')
     {
       if ($name eq 'rcvd')
       {
@@ -4675,8 +4684,6 @@
       $dskName=$dskOrder[$i];
       next    if ($dskFiltKeep eq '' && $dskName=~/$dskFiltIgnore/) || 
($dskFiltKeep ne '' && $dskName!~/$dskFiltKeep/);
 
-      # note I removed remapping of cciss name because it was just discovered 
I never needed to since
-      # the cciss/ was dropped when $dskOrder array implemented
       $temp= 
"[DSK]Name${SEP}[DSK]Reads${SEP}[DSK]RMerge${SEP}[DSK]RKBytes${SEP}[DSK]WaitR${SEP}";
       
$temp.="[DSK]Writes${SEP}[DSK]WMerge${SEP}[DSK]WKBytes${SEP}[DSK]WaitW${SEP}[DSK]Request${SEP}";
       
$temp.="[DSK]QueLen${SEP}[DSK]Wait${SEP}[DSK]SvcTim${SEP}[DSK]Util${SEP}";
@@ -9525,20 +9532,21 @@
       $file.="/$devname";
       $file.=$devnum;
       $file.="/ports";
-
       @ports=ls($file);
       $maxPorts=scalar(@ports)    if scalar(@ports)>$maxPorts;
       foreach $port (@ports)
       {
        $port=~/(\d+)/;
        $port=$1;
+       $link=cat("$file/$1/link_layer");
        $state=cat("$file/$1/state");
         $state=~/.*: *(.+)/;
-        $portState=($1 eq 'ACTIVE') ? 1 : 0;
+        $portState=($link="InfiniBand" && $1 eq 'ACTIVE') ? 1 : 0;
         $HCAPorts[$NumHCAs][$port]=$portState;
+       $HCAOpaV4[$NumHCAs][$port]=(-e "$file/$port/counters") ? 1 : 0;
        if ($portState)
         {
-         print "  OFED Port: $port  ID: $HCAId[$NumHCAs]\n"    if $debug & 2;
+         print "  IB Device: $devname$devnum OFED Port: $port  ID: 
$HCAId[$NumHCAs] OpaV4: $HCAOpaV4[$NumHCAs][$port]\n"    if $debug & 2;
           $HCANames.=":$port";
           $activePorts++;
         }


Reply via email to