PowerEdge 1850, PERC 4e/Si not visible in OMSA

Brice Figureau brice+dell at daysofwonder.com
Wed Jul 1 05:24:02 CDT 2009


Hi,

I do have the same issues for a 1850 and a 2850 with respectively a
Perc4/SI and a Perc4/DI adapters.

I don't think the commit you highlighted is the root cause, but maybe it
would be worth to test by removing this commit.

I think it is an issue of the sysfs layout that changed in 2.6.25.
What would be interesting would be to git bisect between 2.6.24 and
2.6.25 and see what commit gives the failure.
>From there, I think we could really understand what happens.
Unfortunately it will take a long time to test this.

Another interesting strategy would be to issue:
find /sys -ls 
on 2.6.24 and 2.6.25 and try to look at the differences between the
output.

I ran the storage manager in debug mode
(see /opt/dell/srvadmin/sm/stsvc.ini config file
and /var/log/dcomsm.log) on a working kernel (debian 2.6.22 here), and a
failing kernel (debian 2.6.26), and found that the LSI omsa subsystems
correctly sees the adapter, but fails to report it to the rest of the
dataeng.
On both systems the NRS vil is reporting the correct adapter:
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG: nrs2_print_adapter: Enter
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  --Adapter: 0x8164a60
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	class_type: 1
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	type: 1
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	sub_type: 4
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	protocol: 1
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	pci_bus: 2
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	pci_dev: E
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	pci_func: 0
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	adapter_num: 1
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	vendor_id: 1028
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	device_id: 13
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	subvendor_id: 1028
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	subdevice_id: 16D
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	rev: 0
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	fw_rev: 0
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	bios_rev: 0
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	description: 
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	num_channels: 1
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	channel_list: 0x8164bd0
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	next_type: 0
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	next: (nil)
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	previous_type: 1
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	previous: 0x815bbb0
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	parent_type: 0
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	parent: (nil)
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  	future: (nil)
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG:  --End Adapter: 0x8164a60
(T:F7D6F6B0)[07-01 11:12:46:000] NRSVIL: NRS2: DEBUG: nrs2_print_adapter: Exit

And then, when the LSI vil is asked about details the working version prints:
(T:F4483B90)[07-01 11:12:46:000] RAL: StorageDiscover: calling ValGetControllers()...
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: IN Vil entry: 0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: checkIfSupportedController Entry
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 80
(T:F3483B90)[07-01 11:12:46:000] RAL: ListenForEvent: entry, waiting for VAL to signal...
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: checkIfSupportedController supported model: 16d
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: checkIfSupportedController Exit
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: LSIGetControllers add controller num: 135438368
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 80
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 101
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: checkIfIMController: pciIdString = 1028000E1028016D
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 104
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: checkIfIMController: Its not PERC4IM controller
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 47
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: LSIRefreshController rebuild rate: 65
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 10
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 122
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: RefreshController: FAST INIT Mode = 1
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 101
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: LSIRefreshController: Have the slot info 
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: LsiRefreshController: pciIdString = 1028000E1028016D
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: RefreshController: Get ext info
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 104
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: RefreshController: stripe mask: 508
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 109
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: RefreshController: Check FW info
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 89
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 102
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Supports RLD
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 64
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 50
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Have FW info
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 108
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 117
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 117
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: LSIVIL: PR GET_MODE return code 0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: SetControllerMethodMasks: cmodel is 365 (0x0000016d)
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: EN2 SetControllerMethodMasks Current mask: 11fd
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: EN2 SetControllerMethodMasks Master mask: 11fd
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: SetControllerMethodMasks Current mask: 11e1
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: SetControllerMethodMasks Master mask: 11e1
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Send Megalibcommand command: 1
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: Back from  Megalibcommand result =0
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: SetControllerMethodMasks maxvd allowed: 40
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: SetControllerMethodMasks num logical drives: 2
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: LSIRefreshController: return
(T:F4483B90)[07-01 11:12:46:000] LSIVIL: IN Vil entry: return: 1
(T:F4483B90)[07-01 11:12:46:000] VAL: ValGetControllers: Getting BDF for controller 0, VIL 0
(T:F4483B90)[07-01 11:12:46:000] VAL: ValGetControllers: Description of controller: PERC 4e/Di
(T:F4483B90)[07-01 11:12:46:000] VAL: ValGetControllers: BDF for controller 0, VIL 0 is 2:14:0
(T:F4483B90)[07-01 11:12:46:000] VAL: ValGetControllers: setting new controller, bdf: 2:14:0

On the non-working version, this last part is:
(T:F450EB90)[07-01 11:25:14:000] RAL: StorageDiscover: calling ValGetControllers()...
(T:F450EB90)[07-01 11:25:14:000] LSIVIL: IN Vil entry: 0
(T:F450EB90)[07-01 11:25:14:000] LSIVIL: IN Vil entry: return: 0

and that's all... So clearly the LSI is not able to detect the presence
of the hardware even though the other parts was able to detect it...

I'll try the bisection during the week-end, and I'll keep you posted.
Thanks,

On Thu, 2009-06-04 at 11:40 +0200, Francisco Javier Romero Muñoz wrote:
> It works on 2.6.24.7 (last versión 2.6.24) and it doesn’t work on
> 2.6.25.1 (first versión 2.6.25)
> 
>  
> 
> The Changelog of 2.6.25 
> 
>  
> 
>> 
>     [SCSI] MegaRAID driver management char device moved to misc
> 
>     
> 
>     The MegaRAID driver's common management module (megaraid_mm.c)
> creates a
> 
>     char device used by the management tool "megarc" from LSI Logic
> (and
> 
>     possibly other management tools).
> 
>     
> 
>     In 2.6 with udev, this device doesn't get created because it is
> not
> 
>     registered in sysfs.
> 
>     
> 
>     I first fixed this by registering a class "megaraid_mm", but
> realized that
> 
>     this should probably be moved to misc devices, instead of taking
> up a char
> 
>     major.  This is because only 1 device is used, even if there are
> multiple
> 
>     adapters - the minor is never used (the adapter info is in the
> ioctl block
> 
>     sent to the driver, not detected based on the minor number as one
> might
> 
>     think).  So it is a complete waste to have an entire major taken
> by this.
> 
>     
> 
>     So it now uses a misc device which I named "megadev0" (the name
> that megarc
> 
>     expects), and has a dynamic minor (previoulsy a dynamic major was
> used).
> 
>     
> 
>     I have tested this on my own system with the megarc tool, and it
> works just
> 
>     as fine as before (only now the device gets created correctly by
> udev).”
> 
>  
> 
> Any solution, any idea?

-- 
Brice Figureau
My Blog: http://www.masterzen.fr/



More information about the Linux-PowerEdge mailing list