[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <52992EFA.4000903@acm.org>
Date: Fri, 29 Nov 2013 18:19:06 -0600
From: Corey Minyard <minyard@....org>
To: Srinivas_G_Gowda@...l.com, tcminyard@...il.com,
linux-kernel@...r.kernel.org, openipmi@...sta.com
Subject: Re: [PATCH 1/1] ipmi: setting mod_timer for read_event_msg buffer
cmd
On 11/27/2013 04:34 AM, Srinivas_G_Gowda@...l.com wrote:
>
> *Dell - Internal Use - Confidential *
>
> I hit a bug during one of our stress tests, Here is the issue that I
> am looking at.
>
> We have IPMI_READ_EVENT_MSG_BUFFER_CMD getting invoked from
> smi_event_handler.
>
> In case we hit error scenario, say "OBF not ready in time" we do not
> have smi_timeout driving the interface.
>
> Seems like the timer is not armed when we invoke
> IPMI_READ_EVENT_MSG_BUFFER_CMD from smi_event_handler.
>
> For the proposed patch I checked the return value of mod_timer just
> before smi_info->handlers->start_transaction, that returns 0 !!!
>
> gWithout smi_timeout handler getting called periodically, if the BMC
> fails to set OBF flag during the msg transaction of
> IPMI_READ_EVENT_MSG_BUFFER_CMD,
>
> the driver just keeps looping until the flag is set. Ideally we would
> want BMC to set the flag, but in case it doesn’t we do not want the
> driver to loop indefinitely rather hit KCS_ERROR states.
>
> To summarize, we do not have timer set to invoke smi_timeout() when we
> call IPMI_READ_EVENT_MSG_BUFFER_CMD from smi_event_handler.
>
> Do you feel there is a better way to fix it or a bug elsewhere…!
>
Ok, I think I know what is happening, and I think I have a fix. I'm
betting that you have interrupts on this, and
I found a situation where if an interrupt came in at a certain time, it
wouldn't start the timer. The attached patch should fix the problem.
Can you try this out?
Thanks for the detailed description.
-corey
View attachment "0001-IPMI-Start-the-timer-properly-in-certain-situations.patch" of type "text/x-diff" (2195 bytes)
Powered by blists - more mailing lists