Anyone seeing tx-credits 'hang'?

Michal Kazior michal.kazior at
Wed Jan 21 22:11:44 PST 2015

On 21 January 2015 at 16:42, Ben Greear <greearb at> wrote:
> On 01/20/2015 11:22 PM, Michal Kazior wrote:
>> On 20 January 2015 at 05:34, Ben Greear <greearb at> wrote:
>> Out of curiosity - what irq mode are you using? Shared or MSI? Or did
>> you try both?
> Probably MSI, but I don't actually know.  Is there an easy way to tell?

When ath10k loads it prints in the kernel log either:

 ath10k_pci 0000:00:00.0: pci irq legacy interrupts 0 irq_mode 0 reset_mode 0
 ath10k_pci 0000:00:05.0: pci irq msi interrupts 1 irq_mode 0 reset_mode 0

You can force shared interrupts if you load ath10k_pci with irq_mode=1.

>>> The combination of WMI keep-alive messages sent from host, and
>>> timer to check for timeouts (and do CE polling at higher intervals
>>> when timeout is detected) appears to be enough.  I also check
>>> for the IRQ working again and stop the polling at that time.
>>> I plan to clean the firmware changes up and commit them to my
>>> own repo...but it will require host changes to enable the keep-alive
>>> to fully work around this problem.  Probably none of this will make
>>> it upstream....
>> We could add a watchdog to WMI which uses the `echo` command and look
>> at echo events and tx credit completion (WMI is notified about that).
>> In case neither comes in in a timely fashion (lets say 1s which is
>> less than WMI command timeout of 3s) we start polling until things
>> settle down. This should work with standard firmware, no?
> Since it is firmware that has to do the CE polling, then I don't see any
> way to resolve this w/out hacking firmware..and you need a new message to
> send to firmware from host that firmware can be sure is periodic to use
> as it's WMI keep-alive timer.  That is why I made a new message type
> for this (otherwise, cannot really be backwards compat with old kernels that
> do not send regular keep-alives, but *may* send any other valid message type
> for
> whatever reason whenever they want.)

Oh. I totally misunderstood you before. Thanks for claryfing.


More information about the ath10k mailing list