LSI2008 controller clobbers first disk with new LSI mps driver

Desai, Kashyap Kashyap.Desai at lsi.com
Fri Feb 17 19:57:43 UTC 2012


Jason,

Thanks for the data. Now, I am able to understand real issue.  See below details from debug logs.
See my comment with << marks.

mps0: SAS Address from SAS device page0 = 5000c50033f5cdb5
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x000a> <2/0>
mps0: Target id 0x8 added
<<------------------------------------->>
Here suppose to be a boot device and it is device connected to slot-0, detected 
Very well as first device at driver. Assigned Target id = 8. 
This is as expected. 
<<------------------------------------->>
mps0: SAS Address from SAS device page0 = 5000c50033f49c01
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x000b> <2/1>
mps0: Target id 0x9 added
mps0: SAS Address from SAS device page0 = 5000c50033f6c799
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x000c> <2/2>
mps0: Target id 0xa added
mps0: SAS Address from SAS device page0 = 5000c50033e562f5
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x000d> <2/3>
mps0: Target id 0xb added
mps0: SAS Address from SAS device page0 = 5000c50033f49a41
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x000e> <2/4>
mps0: Target id 0xc added
mps0: SAS Address from SAS device page0 = 5000c50033f5efe9
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x000f> <2/5>
mps0: Target id 0xd added
mps0: SAS Address from SAS device page0 = 5000c50033f49a11
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x0010> <2/6>
mps0: Target id 0xe added
mps0: SAS Address from SAS device page0 = 5000c50033f49c71
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x0011> <2/7>
mps0: Target id 0xf added
mps0: SAS Address from SAS device page0 = 5000c50033f40fb1
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x0012> <2/8>
mps0: Target id 0x10 added
mps0: SAS Address from SAS device page0 = 5000c50033f6cba9
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x0013> <2/9>
mps0: Target id 0x11 added
mps0: (13)->(mpssas_fw_work) Event Free: [1c]
mps0: (13)->(mpssas_fw_work) Working on  Event: [1c]
mps0: SAS Address from SAS device page0 = 5000c50033f650cd
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x0014> <2/10>
mps0: Target id 0x12 added
mps0: SAS Address from SAS device page0 = 5000c50033f29109
mps0: Found device <401<SspTarg>,End Device> <6.0Gbps> <0x0015> <2/11>
mps0: Target id 0x13 added
<<-- Now Driver detects SES devices. -->>
_But_ unfortunetly driver assign Target-id = 8 to the SES device.
This will override device mapping table of Drive and Target-id = 8 is no more your boot device which was detected very first.
This needs to be fix in driver. I am currently not in office. (Working at Asia pacific time zone)
I will have a look of this and provide you some solution.
<<------------------------------------->>
mps0: SAS Address from SAS device page0 = 500304800126e3fd
mps0: Found device <4451<SmpInit,SspInit,SspTarg,SepDev>,End Device> <6.0Gbps> <0x0016> <2/0>
mps0: Target id 0x8 added
mps0: mpssas_startup_decrement releasing simq
mps0: Queueing rescan for (xpt0:mps0:0:-1:-1):


~ Kashyap

> -----Original Message-----
> From: Jason Wolfe [mailto:nitroboost at gmail.com]
> Sent: Saturday, February 18, 2012 1:00 AM
> To: Desai, Kashyap
> Cc: Maksim Yevmenkin; freebsd-scsi at freebsd.org
> Subject: Re: LSI2008 controller clobbers first disk with new LSI mps
> driver
> 
> Kashyap,
> 
> The boot drive is always the first disk, enclosure 0, and should be da0.
> It is the same model as the other 11 disks also.
> 
> PCI  ENCL LUN VENDOR   PRODUCT          PRODUCT     SIZE \
> SLOT SLOT NUM NAME     IDENTIFIER       REVISION    NVDATA
> ---- ---- --- -------- ---------------- ----------- ---------
>   5           LSI      SAS2008-IT       10.00.02.00  0A:02:00:04
>   5    0   0  SEAGATE  ST91000640SS     0001           953 GB
> <-------- boot drive/wanted da0/masked by ses device
>   5    1   0  SEAGATE  ST91000640SS     0001           953 GB
>   5    2   0  SEAGATE  ST91000640SS     0001           953 GB
>   5    3   0  SEAGATE  ST91000640SS     0001           953 GB
>   5    4   0  SEAGATE  ST91000640SS     0001           953 GB
>   5    5   0  SEAGATE  ST91000640SS     0001           953 GB
>   5    6   0  SEAGATE  ST91000640SS     0001           953 GB
>   5    7   0  SEAGATE  ST91000640SS     0001           953 GB
>   5    8   0  SEAGATE  ST91000640SS     0001           953 GB
>   5    9   0  SEAGATE  ST91000640SS     0001           953 GB
>   5   10   0  SEAGATE  ST91000640SS     0001           953 GB
>   5   11   0  SEAGATE  ST91000640SS     0001           953 GB
> 
> Attached is the verbose dmesg with the mps.debuglevel set.
> 
> Jason
> 
> On Fri, Feb 17, 2012 at 11:54 AM, Desai, Kashyap <Kashyap.Desai at lsi.com>
> wrote:
> >
> >
> > OK, So you have your / partion on da0. (this drive is attached to
> > which phy ?) Since all Drive are from same manufacture and Same
> variant, it is difficult to collect data from this dmesg log.
> >
> > Can you put the following in /boot/loader.conf:
> >
> > hw.mps.debug_level=0xd
> >
> > Here is some context of the target id generation logic in <mps>
> >
> > Older driver available in FreeBSD-8 Stable, will not have any logic in
> driver to generate Target id mapping.
> > So it will give da0 device name to the drive which is detected First
> by FW.
> >
> > With newer driver story is little different. Drive will find the DPM
> > page in FW for particular drive detected by FW and it will do mapping
> Either by Enclosure slot mapping / Device mapping.
> >
> > I am trying to see how best I can solve your issue.
> >
> > Also, In this case which device has actually you wants to be da0 ? ( I
> > mean boot driver has got which device name ? )
> >
> > Let me see your another dmesg output.
> >
> > ` Kashyap


More information about the freebsd-scsi mailing list