[Skiboot] [PATCH] ipmi: call check_timers() while waiting for synchronous messages to complete
Vasant Hegde
hegdevasant at linux.vnet.ibm.com
Fri Apr 5 03:01:58 AEDT 2019
On 04/04/2019 07:17 PM, Cédric Le Goater wrote:
> BT responses are handled using a timer doing the polling. To hope to
> get an answer to an IPMI synchronous message, the timer needs to run.
>
timer is called from time_wait_ms() -> opal_run_pollers() -> chec_timer() right?
> This issue shows up very quickly under QEMU when loading the first
> flash resource with the IPMI HIOMAP backend.
Is this during boot time ?
>
> Adding a timeout would also help in reporting errors instead of
> looping indefinitely waiting for a response.
>
> Signed-off-by: Cédric Le Goater <clg at kaod.org>
> ---
> core/ipmi.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/core/ipmi.c b/core/ipmi.c
> index 2bf3f4dabe19..78b410fd1aea 100644
> --- a/core/ipmi.c
> +++ b/core/ipmi.c
> @@ -182,8 +182,16 @@ void ipmi_queue_msg_sync(struct ipmi_msg *msg)
> ipmi_queue_msg_head(msg);
> unlock(&sync_lock);
>
> - while (sync_msg == msg)
> + /*
> + * BT response handling relies on a timer. Run timers once in
> + * a while.
> + *
> + * TODO (clg): implement a timeout for IPMI synchronous messages
> + */
We have timeout for ipmi messages. Its handled in hw/bt.c (once we schedule
message).
-Vasant
More information about the Skiboot
mailing list