What to do about hung firmware?
Michal Kazior
michal.kazior at tieto.com
Wed Nov 6 02:07:15 EST 2013
On 5 November 2013 19:51, Ben Greear <greearb at candelatech.com> wrote:
> I'm seeing cases where it appears the firmware just gets
> stuck and will not answer any WMI requests.
You probably mean FW doesn't replenish HTT TX credits for WMI.
> ath10k just patiently keeps timing out WMI commands,
> (while holding locks, and making the whole system run slow).
>
> Should we maybe keep a last-msg-from firmware time stamp
> and just whack the firmware if we detect it hung? In addition
> to this, we could add some 'ping' message that will get sent
> periodically to the firmware to make sure it is alive.
> We should be able to do this with existing WMI API, just
> need to pick a message to send that expects some response.
Probably the easiest/shortest way to do this is to store a timestamp
in ath10k_wmi_op_ep_tx_credits() and check against it in
ath10k_wmi_cmd_send(). Once you deem FW stopped responding you could
queue ar->restat_work.
You probably could try WMI_ECHO_CMDID to implement a keep alive when
idling (i.e. not sending WMI commands for a few seconds at least).
Michał
More information about the ath10k
mailing list