All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Greear <greearb@candelatech.com>
To: "Luis R. Rodriguez" <lrodriguez@Atheros.com>
Cc: Luis Rodriguez <Luis.Rodriguez@Atheros.com>,
	linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: memory clobber in rx path, maybe related to ath9k.
Date: Fri, 15 Oct 2010 09:51:59 -0700	[thread overview]
Message-ID: <4CB886AF.3070800@candelatech.com> (raw)
In-Reply-To: <20101014234853.GA10113@tux>

On 10/14/2010 04:48 PM, Luis R. Rodriguez wrote:
> On Thu, Oct 14, 2010 at 04:39:45PM -0700, Luis R. Rodriguez wrote:
>> On Thu, Oct 14, 2010 at 4:30 PM, Ben Greear<greearb@candelatech.com>  wrote:
>>> On 10/14/2010 04:19 PM, Luis R. Rodriguez wrote:
>>>>
>>>> Ok please try this patch, it cures it for me.
>>>
>>> Well, it got a lot further than normal, but it still
>>> hit the poison check after a few minutes.
>>>
>>> Current test case is my app loading 130 or so stations, each running
>>> wpa_supplicant.  All were created, and quite a few had associated
>>> when the poison check hit.
>>>
>>> So, it definitely looks like a step in the right direction, but
>>> not fully fixed yet.
>>>
>>> I'll do some more testing with this patch applied and using just my
>>> perl script to make sure the problem is reproducible outside of my
>>> application.
>>
>> Ok, whatever userspace does it should not corrupt to kernel, unless
>> its poking /dev/mem
>
> Can also try this one instead, it will prevent any other instances
> we would not have caught on stopping and starting RX here.

It ran longer than before any of your locking patches (about 3 minutes), but
it did hit the poison check.

Before it did, I had a bunch of OOM errors trying to allocate
skbs.  I have 2GB of RAM on this system, but maybe it's not tuned
properly, and not all of that can be used for networking on 32-bit kernels....

I have Felix's 3 ani patches from ~3 days ago applied, running 130 stations
in WPA mode.

I'm going to try running fewer to dodge the OOM case,
but I have a few other things to take care of first.

Thanks,
Ben

>
> diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
> index fe73fc5..db677c4 100644
> --- a/drivers/net/wireless/ath/ath9k/recv.c
> +++ b/drivers/net/wireless/ath/ath9k/recv.c
> @@ -306,10 +306,8 @@ static void ath_edma_start_recv(struct ath_softc *sc)
>
>   static void ath_edma_stop_recv(struct ath_softc *sc)
>   {
> -	spin_lock_bh(&sc->rx.rxbuflock);
>   	ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_HP);
>   	ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_LP);
> -	spin_unlock_bh(&sc->rx.rxbuflock);
>   }
>
>   int ath_rx_init(struct ath_softc *sc, int nbufs)
> @@ -482,13 +480,14 @@ int ath_startrecv(struct ath_softc *sc)
>   {
>   	struct ath_hw *ah = sc->sc_ah;
>   	struct ath_buf *bf, *tbf;
> +	unsigned long flags;
>
>   	if (ah->caps.hw_caps&  ATH9K_HW_CAP_EDMA) {
>   		ath_edma_start_recv(sc);
>   		return 0;
>   	}
>
> -	spin_lock_bh(&sc->rx.rxbuflock);
> +	spin_lock_irqsave(&sc->rx.rxbuflock, flags);
>   	if (list_empty(&sc->rx.rxbuf))
>   		goto start_recv;
>
> @@ -506,7 +505,7 @@ int ath_startrecv(struct ath_softc *sc)
>   	ath9k_hw_rxena(ah);
>
>   start_recv:
> -	spin_unlock_bh(&sc->rx.rxbuflock);
> +	spin_unlock_irqrestore(&sc->rx.rxbuflock, flags);
>   	ath_opmode_init(sc);
>   	ath9k_hw_startpcureceive(ah, (sc->sc_flags&  SC_OP_OFFCHANNEL));
>
> @@ -517,7 +516,9 @@ bool ath_stoprecv(struct ath_softc *sc)
>   {
>   	struct ath_hw *ah = sc->sc_ah;
>   	bool stopped;
> +	unsigned long flags;
>
> +	spin_lock_irqsave(&sc->rx.rxbuflock, flags);
>   	ath9k_hw_stoppcurecv(ah);
>   	ath9k_hw_setrxfilter(ah, 0);
>   	stopped = ath9k_hw_stopdmarecv(ah);
> @@ -526,6 +527,7 @@ bool ath_stoprecv(struct ath_softc *sc)
>   		ath_edma_stop_recv(sc);
>   	else
>   		sc->rx.rxlink = NULL;
> +	spin_unlock_irqrestore(&sc->rx.rxbuflock, flags);
>
>   	return stopped;
>   }


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


  reply	other threads:[~2010-10-15 16:52 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-05 17:00 memory clobber in rx path, maybe related to ath9k Ben Greear
2010-10-05 17:16 ` Luis R. Rodriguez
2010-10-05 17:24   ` Ben Greear
2010-10-05 17:36     ` Luis R. Rodriguez
2010-10-05 17:38       ` Ben Greear
2010-10-05 17:43         ` Luis R. Rodriguez
2010-10-05 17:47           ` Ben Greear
2010-10-05 17:55             ` Luis R. Rodriguez
2010-10-05 18:14               ` Ben Greear
2010-10-05 21:12                 ` Ben Greear
2010-10-07 17:33                 ` Ben Greear
2010-10-07 18:14                   ` Johannes Berg
2010-10-07 18:29                     ` Luis R. Rodriguez
2010-10-07 18:39                       ` Ben Greear
2010-10-07 18:42                         ` Luis R. Rodriguez
2010-10-07 18:45                           ` Ben Greear
2010-10-07 19:14                             ` Ben Greear
2010-10-07 19:17                               ` Johannes Berg
2010-10-07 19:22                           ` Ben Greear
2010-10-07 19:27                             ` Johannes Berg
2010-10-07 21:31                               ` Luis R. Rodriguez
2010-10-07 21:36                                 ` Luis R. Rodriguez
2010-10-07 21:59                                   ` Luis R. Rodriguez
2010-10-11 20:51                                     ` Ben Greear
2010-10-12  1:03                                       ` Luis R. Rodriguez
2010-10-12  3:27                                         ` Ben Greear
2010-10-12  6:10                                           ` Luis R. Rodriguez
2010-10-12 18:35                                             ` Ben Greear
2010-10-12 18:40                                               ` Luis R. Rodriguez
2010-10-12 18:43                                                 ` Ben Greear
2010-10-12 19:51                                                   ` Ben Greear
2010-10-13 17:12                                                 ` Ben Greear
2010-10-13 17:29                                                   ` Luis R. Rodriguez
2010-10-13 17:48                                                     ` Ben Greear
2010-10-14 21:25                                                       ` Luis R. Rodriguez
2010-10-14 21:31                                                         ` Ben Greear
2010-10-14 21:32                                                           ` Luis R. Rodriguez
2010-10-14 21:39                                                             ` Ben Greear
2010-10-14 21:45                                                       ` Johannes Berg
2010-10-14 21:47                                                         ` Ben Greear
2010-10-13  5:31                                               ` Vasanthakumar Thiagarajan
2010-10-13 16:39                                                 ` Ben Greear
2010-10-13 19:56                                                   ` Björn Smedman
2010-10-13 20:03                                                     ` Luis R. Rodriguez
2010-10-14 19:15                                                       ` Ben Greear
2010-10-14 19:17                                                         ` Luis R. Rodriguez
2010-10-14 21:52                                                     ` Björn Smedman
2010-10-14 22:05                                                       ` Ben Greear
2010-10-14 22:16                                                         ` Luis R. Rodriguez
2010-10-14 22:29                                                           ` Luis R. Rodriguez
2010-10-14 22:35                                                             ` Luis R. Rodriguez
2010-10-14 22:44                                                               ` Ben Greear
2010-10-14 22:54                                                                 ` Luis R. Rodriguez
2010-10-14 22:51                                                               ` Luis R. Rodriguez
2010-10-14 23:19                                                                 ` Luis R. Rodriguez
2010-10-14 23:30                                                                   ` Ben Greear
2010-10-14 23:39                                                                     ` Luis R. Rodriguez
2010-10-14 23:48                                                                       ` Luis R. Rodriguez
2010-10-15 16:51                                                                         ` Ben Greear [this message]
2010-10-15 18:47                                                                           ` Luis R. Rodriguez
2010-10-15 19:36                                                                             ` Ben Greear
2010-10-15 21:07                                                                               ` Luis R. Rodriguez
2010-10-15 23:21                                                                                 ` Luis R. Rodriguez
2010-10-15 23:33                                                                                   ` Ben Greear
2010-10-15 23:38                                                                                     ` Luis R. Rodriguez
2010-10-15 23:41                                                                                       ` Luis R. Rodriguez
2010-10-16  0:07                                                                                         ` Ben Greear
2010-10-15 23:42                                                                                       ` Ben Greear
2010-10-15 23:57                                                                                         ` Luis R. Rodriguez
2010-10-17 19:44                                                                                           ` Ben Greear
2010-10-18 22:46                                                                                             ` Luis R. Rodriguez
2010-10-15 23:39                                                                                     ` Ben Greear
2010-10-14 23:51                                                                       ` Ben Greear
2010-10-14 22:47                                                       ` Ben Greear
2010-10-14 23:46                                                         ` Björn Smedman
2010-10-18 13:48                                                           ` Björn Smedman
2010-10-18 17:24                                                             ` Luis R. Rodriguez
2010-10-18 22:34                                                               ` Björn Smedman
2010-10-18 22:41                                                                 ` Luis R. Rodriguez
2010-10-14  5:37                                                   ` Vasanthakumar Thiagarajan
2010-10-07 21:52                                 ` Ben Greear
2010-10-08  0:42                               ` Bruno Randolf
2010-10-08  2:30                                 ` Ben Greear
2010-10-05 17:22 ` Johannes Berg

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=4CB886AF.3070800@candelatech.com \
    --to=greearb@candelatech.com \
    --cc=Luis.Rodriguez@Atheros.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=lrodriguez@Atheros.com \
    /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.