All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/3] ath9k: SMP fixes
@ 2009-03-12 22:18 ` Luis R. Rodriguez
  0 siblings, 0 replies; 14+ messages in thread
From: Luis R. Rodriguez @ 2009-03-12 22:18 UTC (permalink / raw)
  To: ath9k-devel, linux-wireless; +Cc: Luis R. Rodriguez

This v6 removes the hotplug CPU stuff which although it technically
would be correct is more cruft and highly unlikely. The down side
is you will get serialization applied even if you only have one
CPU but who cares, I doubt those nutty SGI guys are toying with
ath9k in the lab.

Yesterday I started mucking with an alternative approach to
serialization which worked. I added just 5 udelay()s in key places
where we had a lot of consecutive IO read/writes issued and that
resolved the issue at least for STA mode but it didn't do the trick
for AP mode. Technically it should be possible to groom all hardware
access routines to do the same but I'm tired of this issue and want
to a fix merged today not a few weeks from now. Anyway if you are
curious you can check out that patch replacement approach for
serialization here:

http://www.kernel.org/pub/linux/kernel/people/mcgrof/patches/ath9k/2009-03-12/smp-udelay-fix.patch

Note that AP won't work though so if you have a lot of time in your
hands and have an SMP box with PCI Atheros 11n and are seeing the hangs
and want a neat alternative to the current serialization implementation
try adding udelays like the ones in the patch in places where we do a lot
of io read/writes. Send me the results :)

The compromise is to keep serialization conditional -- we do not want to
do it for every read/write regardless of the type of card you have, the
code overhead is not great and we maintain this anyway. Adding it for all
cases would just not be optimal.

Luis R. Rodriguez (3):
  ath9k: implement IO serialization
  ath9k: AR9280 PCI devices must serialize IO as well
  ath9k: remove dummy PCI "retry timeout" fix

 drivers/net/wireless/ath9k/ath9k.h |   34 ++++++++++++++++++++++++++++++++++
 drivers/net/wireless/ath9k/hw.c    |   28 +++++++++++++++++++++++++++-
 drivers/net/wireless/ath9k/hw.h    |    4 ++--
 drivers/net/wireless/ath9k/main.c  |    1 +
 drivers/net/wireless/ath9k/pci.c   |   18 ------------------
 5 files changed, 64 insertions(+), 21 deletions(-)


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2009-03-13 22:25 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-12 22:18 [PATCH v6 0/3] ath9k: SMP fixes Luis R. Rodriguez
2009-03-12 22:18 ` [ath9k-devel] " Luis R. Rodriguez
2009-03-12 22:18 ` [PATCH v6 1/3] ath9k: implement IO serialization Luis R. Rodriguez
2009-03-12 22:18   ` [ath9k-devel] " Luis R. Rodriguez
2009-03-12 22:18 ` [PATCH v6 2/3] ath9k: AR9280 PCI devices must serialize IO as well Luis R. Rodriguez
2009-03-12 22:18   ` [ath9k-devel] " Luis R. Rodriguez
2009-03-12 22:18 ` [PATCH v6 3/3] ath9k: remove dummy PCI "retry timeout" fix Luis R. Rodriguez
2009-03-12 22:18   ` [ath9k-devel] " Luis R. Rodriguez
2009-03-13 21:29 ` [ath9k-devel] [PATCH v6 0/3] ath9k: SMP fixes Luis R. Rodriguez
2009-03-13 21:29   ` Luis R. Rodriguez
2009-03-13 22:02   ` [stable] " Greg KH
2009-03-13 22:02     ` [ath9k-devel] [stable] " Greg KH
2009-03-13 21:24     ` [stable] [ath9k-devel] " Luis R. Rodriguez
2009-03-13 21:24       ` [ath9k-devel] [stable] " Luis R. Rodriguez

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.