The branch main has been updated by imp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=77613ed4e3d635198014fd5b4723fb8eaa35d53e

commit 77613ed4e3d635198014fd5b4723fb8eaa35d53e
Author:     Warner Losh <i...@freebsd.org>
AuthorDate: 2025-06-19 14:24:25 +0000
Commit:     Warner Losh <i...@freebsd.org>
CommitDate: 2025-06-19 15:52:25 +0000

    pass: Update comments about scsi and devstat
    
    scsi is the only transport to do tag_action, so is the only one that
    needs that support in devstat. Make a note of that. nvme and ata do
    support some ordering, but that's done in the [an]da driver for each of
    these devices and not for passthru commands and not via these tags.
    
    Sponsored by:           Netflix
---
 sys/cam/scsi/scsi_pass.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/sys/cam/scsi/scsi_pass.c b/sys/cam/scsi/scsi_pass.c
index 7bf9fa72b245..c3587421c176 100644
--- a/sys/cam/scsi/scsi_pass.c
+++ b/sys/cam/scsi/scsi_pass.c
@@ -611,9 +611,13 @@ passregister(struct cam_periph *periph, void *arg)
                softc->flags |= PASS_FLAG_UNMAPPED_CAPABLE;
 
        /*
-        * We pass in 0 for a blocksize, since we don't 
-        * know what the blocksize of this device is, if 
-        * it even has a blocksize.
+        * We pass in 0 for a blocksize, since we don't know what the blocksize
+        * of this device is, if it even has a blocksize.
+        *
+        * Note: no_tags is valid only for SCSI peripherals, but we don't do any
+        * devstat accounting for tags on any other transport. SCSI is the only
+        * transport that uses the tag_action (ata has only vestigial references
+        * to it, others ignore it entirely).
         */
        cam_periph_unlock(periph);
        no_tags = (cgd->inq_data.flags & SID_CmdQue) == 0;
@@ -974,6 +978,7 @@ passdone(struct cam_periph *periph, union ccb *done_ccb)
                            DEVSTAT_TAG_SIMPLE, DEVSTAT_READ, NULL,
                            &io_req->start_time);
                        break;
+               /* XXX XPT_NVME_IO and XPT_NVME_ADMIN need cases here for resid 
*/
                default:
                        devstat_end_transaction(softc->device_stats, 0,
                            DEVSTAT_TAG_NONE, DEVSTAT_NO_DATA, NULL,

Reply via email to