multiple issues with devstat_*(9)

Alexander Best arundel at freebsd.org
Tue Apr 12 20:51:59 UTC 2011


On Mon Apr 11 11, Kenneth D. Merry wrote:
> On Thu, Apr 07, 2011 at 13:59:35 +0300, 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

i just tried again with ATA_CAM and the patch works perfectly.

iostat -t scsi doesn't show any devices and iostat -t ide shows all my ata/sata
devices in addition to pass* under iostat -t pass and md* under
iostat -t other.

+1 for committing it. :)

cheers.
alex

> > 
> > Any objections? Or SCSI/IDE there expected to mean command set?
> 
> For what it's worth, I think the above patch is the right approach.  The
> device type stuff in devstat has been broken since GEOM went in, so I'm
> glad to see you step up to fix it!
> 
> Ken
> -- 
> Kenneth Merry
> ken at FreeBSD.ORG

-- 
a13x


More information about the freebsd-scsi mailing list