Bug 164132

Summary: [xpt] "xptioctl: pass device not in the kernel" noise when hot swapping drives in 9.x
Product: Base System Reporter: Enji Cooper <ngie>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Open ---    
Severity: Affects Only Me CC: allanjude, beastie, imp, mav, p-fbsd-bugs, trasz
Priority: Normal    
Version: 9.0-STABLE   
Hardware: Any   
OS: Any   

Description Enji Cooper freebsd_committer 2012-01-15 03:40:03 UTC
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.

How-To-Repeat: 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).
Comment 1 G. Paul Ziemba 2014-12-11 06:23:04 UTC
Seeing this on 10.1-STABLE amd64 r274721. Every two seconds, these two lines are added to /var/log/messages. I don't know what's triggering it, but it blows out my logs in about six hours. Oh, I _have_ device pass in my kernel.
Comment 2 Eitan Adler freebsd_committer freebsd_triage 2018-05-20 23:52:32 UTC
For bugs matching the following conditions:
- Status == In Progress
- Assignee == "bugs@FreeBSD.org"
- Last Modified Year <= 2017

Do
- Set Status to "Open"
Comment 3 Allan Jude freebsd_committer 2020-10-15 19:04:14 UTC
I've seen this a few times now, in a case where a disk was swapped, but somehow did not get a pass(4) allocated.

<ATA ST10000NM0016-1T SND0>        at scbus1 target 8 lun 0 (pass12,da11)
<ATA ST10000NM0016-1T SND0>        at scbus1 target 9 lun 0 (da12)
<ATA ST10000NM0016-1T SND0>        at scbus1 target 10 lun 0 (pass14,da13)