Firmware crash when sending large numbers of forwarded packets

Avery Pennarun apenwarr at gmail.com
Fri Mar 7 19:54:01 EST 2014


On Fri, Mar 7, 2014 at 10:53 AM, Ben Greear <greearb at candelatech.com> wrote:
> That is interesting, sending from LAN will often burst higher
> and cause more packet loss (and perhaps higher periodic packet
> loads) but sending locally will typically allow the local stack to back
> off more gracefully.

That theory sounds right.  Do you think there's a way to simulate the
burstiness while avoiding the extra machine?  That would make testing
easier.  Some way to write a lot of packets to a socket and then
release it all at once?  I'm guessing UDP would work better for this
than TCP.

>> [  360.717699] ath10k: firmware crashed!
>> [  360.721434] ath10k: hardware name qca988x hw2.0 version 0x4100016c
>> [  360.727669] ath10k: firmware version: 10.1.467.2-1
>> [  360.733695] ath10k: target register Dump Location: 0x0040AC14
>> [  360.740655] ath10k: target Register Dump
>> [  360.744652] ath10k: [00]: 0x4100016C 0x000015B3 0x009AA69E 0x00955B31
>
> This appears to be an assert in firmware, not just random crash.
>
> Someone with .467 firmware source and a bit of skill with the tool-chain
> should be able to figure out where it is asserting.
>
> I do not know anyone with both of those things, however :P

Maybe I should try harder to get access to the firmware source :)

Michal wrote:
> Avery wrote:
>> - If I swap the direction of transmit (to the AP instead of from the
>> AP) the crash never occurs.
>
> What is the STA endpoint? Is it an ath10k too? Does it run on similar
> ARM board too?

It's a Macbook in this case.  Other people here have simulated it with
other kinds of endpoints, including a Veriwave test device.

>> I assume other people are not experiencing this or they would have
>> mentioned it by now.  What can I do to help debug this?
>
> Can you try reproducing this with traces? Considering this might get
> too big to attach to an email I think it's okay to exclude
> ath10k:ath10k_log_dbg_dump from traces.

Can you give me a clue how to get started with traces?  What do I
enable, and what parts do you want to see?

>> [  362.119075] ath10k_pci 0000:00:00.0: dma_pool_destroy ath10k htt tx
>> pool, ffd8c000 busy
>> [  362.127193] ath10k_pci 0000:00:00.0: dma_pool_destroy ath10k htt tx
>> pool, ffd8d000 busy
>
> These dma pool warnings are very suspicious. I'm guessing tx wasn't
> really stopped and perhaps it leaked due to missing locking/checks.

Agreed.  But I figured that since this part only happens after the
firmware has already crashed, maybe it's of secondary importance.

Have fun,

Avery



More information about the ath10k mailing list