Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 Sep 2011 18:48:26 +0200
From:      Berislav Purgar <bpurgar@gmail.com>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        freebsd-wireless@freebsd.org
Subject:   Re: [patch] if_ath_tx: change interrupt scheduling deferral
Message-ID:  <CAAUsrB4KYaH-uyG_1BiGywZ%2BGOP%2BmBpnw3UO15c767vfQmC5BA@mail.gmail.com>
In-Reply-To: <CAJ-VmoknpF_RhiXWL07GSOqWoHpy3L5Ma4kCptHq9MtfbfPO8w@mail.gmail.com>
References:  <CAJ-VmoknpF_RhiXWL07GSOqWoHpy3L5Ma4kCptHq9MtfbfPO8w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Sep 10, 2011 at 2:24 PM, Adrian Chadd <adrian@freebsd.org> wrote:

> Hi,
>
> This patch changes how the deferred interrupt handling works. It's
> likely I'll have to change things a bit before I commit it so I won't
> be (yet) committing this.
> It brings the interrupt handling in line with how ath9k and the
> reference driver works. It eliminates a possible race condition:
>
> * ath_intr() and ath_hal_getisr() set AH5212(ah)->ah_intrTxqs, which
> is a bitmap of TXQs which need servicing;
> * The ath TX processes call txqactive() which check the above bitmap
> and clear the bit that's been tested.
>
> The interrupt handler ath_intr() can be called during the TX
> completion task, so I think it's possible that the interrupt could
> occur, setting a TXQ bit, in between txqactive()'s "check bit X" and
> "clear bit X".
> My testing was only showing up one queue hang every 20-50 million
> packets where the TXQ had active packets in it which were completed,
> but hadn't been processed.
>
> I've only just begun testing this. I'll post updates as they're needed.
>
> Thanks,
>
>
> Adrian
>
> _______________________________________________
> freebsd-wireless@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-wireless
> To unsubscribe, send any mail to "freebsd-wireless-unsubscribe@freebsd.org
> "
>
> Hello Adrian

i tested new patches and can tell that works ok. i don't see any error
messages  in logfile for both cards (high trafic load). regarding to
anything i tested (HT20/40) iperf shows
TCP ~ 9.8MB/s  UPD ~ 13MB/s  on HT/20 .
TCP ~ 13MB/s   UDP ~ 19.7MB/s on HT/40

this results are when AR5416 act as iperf server and AR9280 as client, in
another case results are worse.
AR5416 works in sta and AR9280 in hostap mode.
that's all for now :)

Beri



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAAUsrB4KYaH-uyG_1BiGywZ%2BGOP%2BmBpnw3UO15c767vfQmC5BA>