All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Greear <greearb@candelatech.com>
To: Avery Pennarun <apenwarr@gmail.com>
Cc: ath10k <ath10k@lists.infradead.org>
Subject: Re: ath10k driver crashes whenever firmware crashes on ARM SoC
Date: Tue, 28 Jan 2014 11:01:40 -0800	[thread overview]
Message-ID: <52E7FE94.9000608@candelatech.com> (raw)
In-Reply-To: <CAHqTa-2JvvRA2v3y5YF8ku02zwxzpotGDQqOUU2FkxzkQgeBAg@mail.gmail.com>

On 01/28/2014 10:34 AM, Avery Pennarun wrote:
> On Tue, Jan 28, 2014 at 1:20 PM, Ben Greear <greearb@candelatech.com> wrote:
>> On 01/28/2014 09:18 AM, Avery Pennarun wrote:
>>> When the ath10k firmware crashes on my device (let's not worry about
>>> why the firmware crashes right now; one problem at a time), my host
>>> CPU (ARMv7 based) can't recover.  I get some variant of this error:
>>
>> I don't know about your pci bus problem, but I'm interested in knowing
>> about firmware crashes (if you are at liberty to share the details).
> 
> Well, since you asked... :)
> 
> I'm trying to build an especially robust system here, so when I
> noticed that the driver will bring the entire system crashing down
> upon a firmware crash, I've actually gone out of my way to make more
> firmware crashes.  So I'm using the ath10k (not ap) firmware from a
> month or so ago, in AP mode.  It's pretty easy to crash the firmware
> with a sequence something like this:
> 
> - start hostapd (I'm using channel 36, HT20, no encryption)
> # note that hostapd already adds a mon.wlan0 monitor interface
> - iw wlan0 interface add mon0 type monitor
> - ip link set mon0 up
> - tcpdump -ni mon0 | head
> 
> This doesn't *always* work, but it kills the firmware maybe half the
> time for me.  It may or may not be worse if there are clients
> connected and pushing traffic.  I've noticed that once the firmware
> has crashed once and recovered, it's hard to crash it again using the
> same trick without unloading and reloading the driver.  Note that in
> this case, the firmware crash doesn't always kill my host SoC with a
> bus error (although sometimes it does).  Even if it doesn't die
> completely, the driver generally comes out confused about the
> monitoring interface(s): it prints "ath10k: Only one monitor interface
> allowed", which is actually totally untrue, since before the crash I
> was able to create and use two at a time.  (I think this error is a
> side effect of getting out of sync with the firmware when it restarts,
> and thus getting confused about "pmon" vs "vmon" monitor interfaces.)
> 
> Also, if I leave the ath10k driver running and pushing traffic for,
> say, 10 minutes, the probability that the firmware will crash *and*
> take my SoC with it, if I try to kill hostapd or unload the driver,
> approaches 100%.

I see similar issues (with the reset killing the PC) on x86-64
(core-i7 CPU).  Kalle mentioned a few days ago that at least some of the
NICs had issues with cold reset and that they hoped to
have a fix that uses warm reset in a week or two.

Interestingly, I also see hard PC lockup on longer runs, but
perhaps that is related to the cold-reset issue somehow.

I'm using the 10.x AP firmware, and my method of crashing firmware
is different at the moment :)

Thanks,
Ben

-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

  reply	other threads:[~2014-01-28 19:02 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-28 17:18 ath10k driver crashes whenever firmware crashes on ARM SoC Avery Pennarun
2014-01-28 18:20 ` Ben Greear
2014-01-28 18:34   ` Avery Pennarun
2014-01-28 19:01     ` Ben Greear [this message]
2014-01-28 19:11       ` Avery Pennarun
2014-01-28 20:10     ` Janusz Dziedzic
2014-01-28 20:51       ` Avery Pennarun
2014-01-29 16:44     ` Kalle Valo
     [not found] ` <CAJ-VmokorbJ2iU4rGNYdRj+A22NR9cV-5h-tDN0pD2FCurZDpA@mail.gmail.com>
2014-01-28 20:55   ` Avery Pennarun
2014-01-29 16:41 ` Kalle Valo
2014-01-29 18:44   ` Adrian Chadd
2014-01-30  2:41     ` Avery Pennarun
2014-02-09  8:00       ` Avery Pennarun
2014-02-27 15:48         ` Missing memory barriers Kalle Valo
2014-02-28  6:10           ` Avery Pennarun
2014-03-06 13:34             ` Kalle Valo
2014-03-11  7:33         ` ath10k driver crashes whenever firmware crashes on ARM SoC Kalle Valo
2014-03-11  7:40           ` Avery Pennarun
2014-03-11  7:52             ` Adrian Chadd
2014-03-11  7:59               ` Avery Pennarun
2014-03-11  8:13               ` Kalle Valo
2014-03-11  8:37                 ` Michal Kazior
2014-03-11  8:10             ` Kalle Valo
2014-03-11 19:01           ` Ben Greear
2014-03-12  8:22             ` Kalle Valo
2014-03-12 16:01               ` Ben Greear
2014-03-12 23:28                 ` Avery Pennarun
2014-03-13  5:09                   ` Kalle Valo
2014-03-13 17:34                     ` Adrian Chadd
2014-03-13 17:39                       ` Kalle Valo
2014-03-13 17:42                       ` Ben Greear
2014-03-14  6:26                         ` Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52E7FE94.9000608@candelatech.com \
    --to=greearb@candelatech.com \
    --cc=apenwarr@gmail.com \
    --cc=ath10k@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.