multiple issues with devstat_*(9)

Alexander Best arundel at freebsd.org
Sun Apr 10 11:56:44 UTC 2011


On Thu Apr  7 11, Alexander Motin wrote:
> Alexander Best wrote:
> > On Fri Apr  1 11, John Baldwin wrote:
> >> On Thursday, March 31, 2011 6:33:39 pm Alexander Best wrote:
> >>> i think there are multiple issues with devstat. i found the following in
> >>> devicestat.h:
> 
> ...
> 
> >>> funny thing is i found the following in scsi_pass.c:
> >>>
> >>>         softc->device_stats = devstat_new_entry("pass",
> >>>                           periph->unit_number, 0,
> >>>                           DEVSTAT_NO_BLOCKSIZE
> >>>                           | (no_tags ? DEVSTAT_NO_ORDERED_TAGS : 0),
> >>>                           softc->pd_type |
> >>>                           DEVSTAT_TYPE_IF_SCSI |
> >>>                           DEVSTAT_TYPE_PASS,
> >>>                           DEVSTAT_PRIORITY_PASS);
> >>>
> >>> ...so pass* *should* show up under iostat -t scsi.
> 
> As I can see, this is a bug (or feature) of the libdevstat /
> devstat_selectdevs(). If you specify any -t, then pass devices will be
> reported only if you request "pass" specifically.
> 
> >> Hmm, pass devices for adaX should not be SCSI though, they should be ide I
> >> think.
> > 
> > i think the situation with ATA_CAM should be discussed further. still besides
> > this issue there are many more with devstat(3).
> > 
> > i'll try to track all the "devstat_new_entry()" occurrences and see if some
> > issues can be fixed. maybe only the proper DEVSTAT_* args were forgotten.
> 
> Assuming that SCSI and IDE in -t option means transport type, and
> assuming that we count everything except ATA and SATA as SCSI, I've made
> following patch, that should fix issues from the CAM side:
> http://people.freebsd.org/~mav/cam.devstat.patch

with your patch i get the following output:

otaku% iostat -t ide
       tty            ada0             ada1             cpu
 tin  tout  KB/t tps  MB/s   KB/t tps  MB/s  us ni sy in id
   6   144 14.21   6  0.09  20.46  40  0.81   2  0  3  0 95
otaku% iostat -t scsi
       tty             cd0             cpu
 tin  tout  KB/t tps  MB/s  us ni sy in id
   6   146  2.32   0  0.00   2  0  3  0 95
otaku% iostat -t pass
       tty           pass0            pass1            pass2             cpu
 tin  tout  KB/t tps  MB/s   KB/t tps  MB/s   KB/t tps  MB/s  us ni sy in id
   6   147  0.36   0  0.00   0.36   0  0.00   0.00   0  0.00   2  0  3  0 95
otaku% iostat -t da  
       tty            ada0             ada1             cpu
 tin  tout  KB/t tps  MB/s   KB/t tps  MB/s  us ni sy in id
   6   147 14.21   6  0.08  20.46  37  0.75   1  0  3  0 95
otaku% iostat -t cd
       tty             cd0             cpu
 tin  tout  KB/t tps  MB/s  us ni sy in id
   7   147  2.32   0  0.00   1  0  3  0 95
otaku% iostat -t other
       tty            cpu
 tin  tout us ni sy in id
   7   149  1  0  3  0 95
otaku% iostat -n 100  
       tty            ada0             ada1              cd0            pass0            pass1            pass2             cpu
 tin  tout  KB/t tps  MB/s   KB/t tps  MB/s   KB/t tps  MB/s   KB/t tps  MB/s   KB/t tps  MB/s   KB/t tps  MB/s  us ni sy in id
   6   135 14.21   5  0.07  20.44  32  0.64   2.32   0  0.00   0.36   0  0.00   0.36   0  0.00   0.00   0  0.00   1  0  3  0 96

the the remaining issues imho are:

1) ada* and cd* are SATA/ATA devices. so i think they should show up together
   either under ide *or* scsi. i don't have any *real* scsi devices.
2) the pass* devices still don't show up under ide/scsi/other. that's ok, but
   then the src comments and manual pages need to be changed accordingly.
3) md0 should show up under iostat -t other

cheers.
alex

> 
> Any objections? Or SCSI/IDE there expected to mean command set?
> 
> -- 
> Alexander Motin

-- 
a13x


More information about the freebsd-scsi mailing list