How to force a reset of a device (disk) in an enclosre slot

John jwd at freebsd.org
Sat Sep 15 03:13:05 UTC 2012


----- Kenneth D. Merry's Original Message -----
> On Sat, Sep 15, 2012 at 02:24:37 +0000, John wrote:
> > Hi Folks,
> > 
> >    I've been poking around and can't seem to find a way to reset and
> > hopefully acquire access to a disk device in an enclosure. For instance:
> > 
> > FreeBSD 9.1-PRERELEASE
> > 
> > # camcontrol smpphylist ses4
> > 37 PHYs:
> > PHY  Attached SAS Address
> >   0  0x5000039368233602   <HP EG0600FBDSR HPD4>             (pass105,da98)
> >   1  0x5000039368238e3e   <HP EG0600FBDSR HPD4>             (pass106,da99)
> >   2  0x500003936823bca2   <HP EG0600FBDSR HPD4>             (pass107,da100)
> >   3  0x500003936819507e   <HP EG0600FBDSR HPD4>             (pass108,da101)
> >   4  0x5000039368197d5a   <HP EG0600FBDSR HPD4>             (pass109,da102)
> >   5  0x5000039368197c6e   <HP EG0600FBDSR HPD4>             (pass110,da103)
> >   6  0x500003936818770e   <HP EG0600FBDSR HPD2>             (pass111,da104)
> >   7  0x5000039368238eba   <HP EG0600FBDSR HPD4>             (pass112,da105)
> >   8  0x5000039368232f42   <HP EG0600FBDSR HPD4>             (pass113,da106)
> >   9  0x0000000000000000
> >  10  0x500003936813c31e
> >  11  0x5000039368233892   <HP EG0600FBDSR HPD4>             (pass114,da107)
> >  12  0x500003936813c2ca   <HP EG0600FBDSR HPD4>             (pass115,da108)
> > ...
> > 
> > Note, bay/slot 10 has a listed device address. If I were to pull the
> > drive and re-insert it, it would show up (as da390 in this case).
> > The above is after a fresh reboot. Note da106 to da107 skipping
> > slot 10 (slot 9 is empty).
> > 
> > The smp utils provide a similar view:
> > 
> > # smp_discover /dev/ses4 
> >   phy   0:D:attached:[5000039368233602:00  t(SSP)]  6 Gbps
> >   phy   1:D:attached:[5000039368238e3e:00  t(SSP)]  6 Gbps
> >   phy   2:D:attached:[500003936823bca2:00  t(SSP)]  6 Gbps
> >   phy   3:D:attached:[500003936819507e:00  t(SSP)]  6 Gbps
> >   phy   4:D:attached:[5000039368197d5a:00  t(SSP)]  6 Gbps
> >   phy   5:D:attached:[5000039368197c6e:00  t(SSP)]  6 Gbps
> >   phy   6:D:attached:[500003936818770e:00  t(SSP)]  6 Gbps
> >   phy   7:D:attached:[5000039368238eba:00  t(SSP)]  6 Gbps
> >   phy   8:D:attached:[5000039368232f42:00  t(SSP)]  6 Gbps
> >   phy  10:D:attached:[500003936813c31e:00  t(SSP)]  6 Gbps
> >   phy  11:D:attached:[5000039368233892:00  t(SSP)]  6 Gbps
> >   phy  12:D:attached:[500003936813c2ca:00  t(SSP)]  6 Gbps
> > ...
> > 
> > The address of slot 10 matches. There is a disk in the slot - just
> > isn't recognized and attached.
> > 
> > Back to the basic question. How can I issue a command to the enclosure
> > to force a re-initialization of the device to recover it without
> > having to physically pull & insert it. Even if the device numbers
> > are not sequential, I need access to the drive...
> 
> You can try sending a link reset:
> 
> camcontrol smppc ses4 -p 10 -o linkreset
> 
> It may or may not work.  You can also try disabling the PHY (-o disable)
> and then sending a link reset to re-enable the link.  You can also try a
> hard reset (-o hardreset)

Hi Ken,

Well, I hadn't tried to actually disable the device. That did bring some
reaction:

# camcontrol smppc ses4 -p 10 -o disable
# camcontrol smpphylist ses4
37 PHYs:
PHY  Attached SAS Address
  0  0x5000039368233602   <HP EG0600FBDSR HPD4>             (pass105,da98)
....
  8  0x5000039368232f42   <HP EG0600FBDSR HPD4>             (pass113,da106)
  9  0x0000000000000000
 10  0x0000000000000000
 11  0x5000039368233892   <HP EG0600FBDSR HPD4>             (pass114,da107)
...

The device is gone.

# camcontrol smppc ses4 -p 10 -o hardreset
root at vprzfs01p:/root # camcontrol smpphylist ses4
37 PHYs:
PHY  Attached SAS Address
  0  0x5000039368233602   <HP EG0600FBDSR HPD4>             (pass105,da98)
....
  8  0x5000039368232f42   <HP EG0600FBDSR HPD4>             (pass113,da106)
  9  0x0000000000000000
 10  0x500003936813c31e
 11  0x5000039368233892   <HP EG0600FBDSR HPD4>             (pass114,da107)
...

The device is back, but not attached - This msg:

kernel: mps1: mpssas_alloc_tm freezing simq
kernel: mps1: mpssas_remove_complete on handle 0x0069, IOCStatus= 0x0
kernel: mps1: mpssas_free_tm releasing simq
kernel: _mapping_add_new_device: failed to add the device with handle 0x0069 to persistent table because there is no free space available - entry 0

>From a debug statement in the driver: MaxPersistentEntries == 128, but I
have more than 128 devices per LSI card and they normally all show up -
though I do get a bunch of the above messages in dmesg..

Thoughts?

-John

> 
> Ken
> -- 
> Kenneth Merry
> ken at FreeBSD.ORG


More information about the freebsd-scsi mailing list