Re: modprobe ipmi_si hangs under 2.6.30-rc5

From: Andrew Morton
Date: Sat May 16 2009 - 20:11:03 EST


On Tue, 12 May 2009 23:28:59 +0200 Ferenc Wagner <wferi@xxxxxxx> wrote:

> Hi,
>
> On a Dell PowerEdge 2650 2.6.30-rc5 can't load the ipmi_si module.
> 2.6.29 has no such problems:
>
> [ 46.292160] IPMI System Interface driver.
> [ 46.300321] ipmi_si: Trying SMBIOS-specified smic state machine at i/o address 0xecf4, slave address 0x20, irq 0
> [ 46.408212] ipmi: Found new BMC (man_id: 0x0002a2, prod_id: 0x0000, dev_id: 0x00)
> [ 46.423454] IPMI smic interface initialized
>
> But under 2.6.30-rc5:
>
> # modprobe ipmi_si bt_debug=7 smic_debug=7 kcs_debug=7
>
> [ 867.851694] IPMI System Interface driver.
> [ 867.859771] ipmi_si: Trying SMBIOS-specified smic state machine at i/o address 0xecf4, slave address 0x20, irq 0
> [ 867.880250] start_smic_transaction - 18 01
> [ 867.880263] smic_event - smic->smic_timeout = 2000000, time = 0
> ...
>
> [ 867.996243] smic_event - smic->smic_timeout = 2000000, time = 0
> [ 867.996250] smic_event - smic->smic_timeout = 2000000, time = 0
> [ 867.996256] smic_event - smic->smic_timeout = 2000000, time = 0
> [...]
>
>
> This goes on through megabytes. The modprobe process didn't terminate
> for 10 minutes, and there was some output like this (cleaned from
> smic_events all around the place by hand):
>
> INFO: task modprobe:6414 blocked for more than 120 seconds.
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> modprobe D f6805780 0 6414 4077
> f48dfe68 00000082 00000000 f6805780
> f48dfe48 f90271cf c046acc0 f64f6a0c
> 2002132c f6da1300 f6da14b4 c182acc0
> 00000002 f64f6a0c 186f5ef2 000000ca
> f48dfe30 c0123c40 00000000 f64f69e0
> f48dfe30 00000282 00000001 c032456c
> Call Trace:
> [<f90271cf>] ? i_ipmi_request+0x8f5/0x916 [ipmi_msghandler]
> [<c0123c40>] ? check_preempt_wakeup+0x146/0x180
> [<c01292c3>] ? try_to_wake_up+0x1f3/0x1fd
> [<c011c70a>] ? default_spin_lock_flags+0x8/0xe
> [<c031b81a>] schedule+0x8/0x17
> [<f9028745>] ipmi_register_smi+0x3ca/0xba1 [ipmi_msghandler]
> [<c028681c>] ? put_device+0xf/0x11
> [<c028782a>] ? device_add+0x497/0x516
> [<c013f2e7>] ? autoremove_wake_function+0x0/0x33
> [<fc2d939c>] try_smi_init+0x58f/0x726 [ipmi_si]
> [<fc2dc3e5>] init_ipmi_si+0x3e2/0x748 [ipmi_si]
> [<c010304f>] do_one_initcall+0x4a/0x115
> [<fc2dc003>] ? init_ipmi_si+0x0/0x748 [ipmi_si]
> [<c0142c0b>] ? __blocking_notifier_call_chain+0x40/0x4c
> [<c014ff97>] sys_init_module+0x87/0x18b
> [<c0107c94>] sysenter_do_call+0x12/0x28
>

Well there have only been a handful of changes to ipmi since 2.6.29.
Could you try a mini-bisection?

Apply revert-1.patch, test
Apply revert-2.patch, test
Apply revert-3.patch, test
Apply revert-4.patch, test

Attached.

Thanks.

Attachment: revert-1.patch
Description: Binary data

Attachment: revert-2.patch
Description: Binary data

Attachment: revert-3.patch
Description: Binary data

Attachment: revert-4.patch
Description: Binary data