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