All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luis R. Rodriguez <lrodriguez@atheros.com>
To: ath9k-devel@lists.ath9k.org
Subject: [ath9k-devel] [RFC v2] Serialization of IO
Date: Wed, 11 Feb 2009 00:07:17 -0800	[thread overview]
Message-ID: <20090211080717.GN4248@tesla> (raw)

So I've gone back to the drawing board, and reviewed this issue
as thoroughly as I can. The issue is PCI reads/writes can overlap
with each other (not just writes). This shouldn't generally be an
issue but if some reads take a while, for example, there could be
another read/write on its way on another CPU and at least for our
PCI 11n devices that will make them angry. Some PCI hosts don't seem
to do this but some others do. It should be noted this issue is not
present on our pre-802.11n devices or our new 11n PCI-express
devices.

So with clarified, here's a second attempt at serialization.
The first patch wasn't doing anything because we never initialized
ah->config.serialize_regmode. We do that now only on non-UP systems.
The last patch in the series is perhaps overkill -- but it would deal
with rare case of a UP system coming up and you hotplugging a second
CPU later. It may also help with suspend, but don't quote me on that
yet.

Anyway, here's the latest stab at it:

http://www.kernel.org/pub/linux/kernel/people/mcgrof/patches/ath9k/2009-02-11/serialization-v2.patch

This applies against today's wireless-testing/compat-wireless updates.

Please test and let me know if ath9k with PCI devices on HT/Multi-CPU
issues are corrected by it.

Known issue: ping flood in a terminal makes it painful to come back.

I've been trying to look for a more neater way to guarantee serialization
but so far this is what I have. I do wonder, for example, if some of
the atomic.h (atomic_inc_and_test()) stuff may let us use it to somehow
serialize CPU entry into a read/write. Although its not designed for it
may be worth considering. I also some of the most evil code I've seen
lately on drivers/pci/quirks.c and did wonder if there was a fix we can
re-use through there but didn't see anything. If you know have any other
ideas please let me know.

  Luis

             reply	other threads:[~2009-02-11  8:07 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-11  8:07 Luis R. Rodriguez [this message]
2009-02-15  1:29 ` [ath9k-devel] [RFC v2] Serialization of IO Luis R. Rodriguez
2009-02-16 10:18   ` W. van den Akker
2009-02-22 21:51     ` W. van den Akker
2009-02-23 17:31       ` Luis R. Rodriguez
2009-02-23 17:45         ` W. van den Akker
2009-02-23 17:48           ` Luis R. Rodriguez
2009-02-23 18:01             ` W. van den Akker
2009-02-23 21:08             ` W. van den Akker
2009-02-23 23:58               ` Luis R. Rodriguez
2009-02-24  6:19                 ` W. van den Akker
2009-02-24  6:27                   ` Luis R. Rodriguez

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=20090211080717.GN4248@tesla \
    --to=lrodriguez@atheros.com \
    --cc=ath9k-devel@lists.ath9k.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.