kern/164132: "xptioctl: pass device not in the kernel" noise when hot swapping drives in 9.x

Garrett Cooper yanegomi at
Sun Jan 15 03:40:04 UTC 2012

>Number:         164132
>Category:       kern
>Synopsis:       "xptioctl: pass device not in the kernel" noise when hot swapping drives in 9.x
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jan 15 03:40:03 UTC 2012
>Originator:     Garrett Cooper
>Release:        9.0-STABLE
FreeBSD bayonetta.local 9.0-STABLE FreeBSD 9.0-STABLE #1 r229323M: Mon Jan  2 14:32:54 PST 2012     gcooper at bayonetta.local:/usr/obj/store/freebsd/stable/9/sys/BAYONETTA  amd64
Was doing hot swap drive testing with a mps-enabled chassis and SAS drives and when I pulled a SAS drive xpt(4) spit out a slew of errors from the following lines of code (from .../sys/cam/cam_xpt.c):

 766                         /*
 767                          * It is unfortunate that this is even necessary,
 768                          * but there are many, many clueless users out ther     e.
 769                          * If this is true, the user is looking for the
 770                          * passthrough driver, but doesn't have one in his
 771                          * kernel.
 772                          */
 773                         if (base_periph_found == 1) {
 774                                 printf("xptioctl: pass driver is not in the      "
 775                                        "kernel\n");
 776                                 printf("xptioctl: put \"device pass\" in "
 777                                        "your kernel config file\n");
 778                         }

Even though the pass device was in the kernel.

The check should probably be refined to check for pass devices.
1. Take a Dell/Supermicro machine with an mps controller and at least 2 devices; setup something other than a RAID0 config with either UFS or ZFS (the issue was reproduced with ZFSv28 and the zfsd patches) so you have enough disks to toy with without accidentally taking down the box.
2. Install 9.0-RELEASE [with the zfsd patches if desired].
3. Add some devd rules to query/manipulate the drive enclosure state via getencstat/setencstat (see .../share/examples/ses/setencstat).


More information about the freebsd-bugs mailing list