From: Christian Lamparter <chunkeey@web.de>
To: ath9k-devel@lists.ath9k.org
Subject: [ath9k-devel] [PATCH v5 1/4] ath9k: implement IO serialization
Date: Wed, 11 Mar 2009 22:38:24 +0100 [thread overview]
Message-ID: <200903112238.24116.chunkeey@web.de> (raw)
In-Reply-To: <43e72e890903111408n1af65629s4d3b6f4b1c6fbb44@mail.gmail.com>
On Wednesday 11 March 2009 22:08:43 Luis R. Rodriguez wrote:
> On Wed, Mar 11, 2009 at 10:30 AM, Johannes Berg
> <johannes@sipsolutions.net> wrote:
> > On Wed, 2009-03-11 at 10:20 -0700, Luis R. Rodriguez wrote:
> >
> >> > Hmm. I really don't understand this at all. Most operations won't be
> >> > single writes and reads, and if you need multiple like a write+read for
> >> > indirect register accesses then I'm sure you need to serialise them
> >> > against each other in some other way too, no?
> >>
> >> The issue is not serializing against separate routines calling some
> >> reads or writes, this serialization prevents the PCI hardware FIFO
> >> queue from getting more than two requests as otherwise the hardware
> >> poops out. But as you can see this is only an issue with PCI devices,
> >> not PCI express devices.
> >
> > Well yes, but if you ever do multi-read/write operations then you need
> > to synchronise at a higher level anyway -- hence I don't quite
> > understand why this is necessary at all.
>
> Agreed as the PCI FIFO issue should be visible on even UP boxes too. I
> was trying to find out out exactly why in an SMP system this would
> occur and it seems the only thing that would cause this is two
> separate threads reading/writing. I did review this but I was unable
> to find a specific synchronization issue. Technically the most obvious
> case is where we handle the beacon tasklet on one CPU and then the
> RX/TX tasklet (this is done in just one tasklet) in another but we
> don't handle the beaconing tasklet in STA mode and this issue is seen
> immediately upon association as a STA. I've been unable to locate that
> source of possible synchronization issue. If you get an idea let me
> know.
maybe it's down to the simple fact that most mainboard nowadays
queue up pci writes? what happends when you always read the
register after it was updated?
> Your point about the simplicity of the code by always doing the
> locking makes sense and its difficult to decide whether or not we want
> that without doing elaborate tests and analysis. Only reason to
> consider this carefully is that we will in fact be changing the
> behavior of each read/write.
>
WARNING: multiple messages have this Message-ID (diff)
From: Christian Lamparter <chunkeey@web.de>
To: "Luis R. Rodriguez" <lrodriguez@atheros.com>
Cc: Johannes Berg <johannes@sipsolutions.net>,
"ath9k-devel@lists.ath9k.org" <ath9k-devel@lists.ath9k.org>,
"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
"John W. Linville" <linville@tuxdriver.com>,
Luis Rodriguez <Luis.Rodriguez@atheros.com>
Subject: Re: [ath9k-devel] [PATCH v5 1/4] ath9k: implement IO serialization
Date: Wed, 11 Mar 2009 22:38:24 +0100 [thread overview]
Message-ID: <200903112238.24116.chunkeey@web.de> (raw)
In-Reply-To: <43e72e890903111408n1af65629s4d3b6f4b1c6fbb44@mail.gmail.com>
On Wednesday 11 March 2009 22:08:43 Luis R. Rodriguez wrote:
> On Wed, Mar 11, 2009 at 10:30 AM, Johannes Berg
> <johannes@sipsolutions.net> wrote:
> > On Wed, 2009-03-11 at 10:20 -0700, Luis R. Rodriguez wrote:
> >
> >> > Hmm. I really don't understand this at all. Most operations won't be
> >> > single writes and reads, and if you need multiple like a write+read for
> >> > indirect register accesses then I'm sure you need to serialise them
> >> > against each other in some other way too, no?
> >>
> >> The issue is not serializing against separate routines calling some
> >> reads or writes, this serialization prevents the PCI hardware FIFO
> >> queue from getting more than two requests as otherwise the hardware
> >> poops out. But as you can see this is only an issue with PCI devices,
> >> not PCI express devices.
> >
> > Well yes, but if you ever do multi-read/write operations then you need
> > to synchronise at a higher level anyway -- hence I don't quite
> > understand why this is necessary at all.
>
> Agreed as the PCI FIFO issue should be visible on even UP boxes too. I
> was trying to find out out exactly why in an SMP system this would
> occur and it seems the only thing that would cause this is two
> separate threads reading/writing. I did review this but I was unable
> to find a specific synchronization issue. Technically the most obvious
> case is where we handle the beacon tasklet on one CPU and then the
> RX/TX tasklet (this is done in just one tasklet) in another but we
> don't handle the beaconing tasklet in STA mode and this issue is seen
> immediately upon association as a STA. I've been unable to locate that
> source of possible synchronization issue. If you get an idea let me
> know.
maybe it's down to the simple fact that most mainboard nowadays
queue up pci writes? what happends when you always read the
register after it was updated?
> Your point about the simplicity of the code by always doing the
> locking makes sense and its difficult to decide whether or not we want
> that without doing elaborate tests and analysis. Only reason to
> consider this carefully is that we will in fact be changing the
> behavior of each read/write.
>
next prev parent reply other threads:[~2009-03-11 21:38 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-11 2:52 [ath9k-devel] [PATCH v5 0/4] ath9k: SMP fixes Luis R. Rodriguez
2009-03-11 2:52 ` Luis R. Rodriguez
2009-03-11 2:52 ` [ath9k-devel] [PATCH v5 1/4] ath9k: implement IO serialization Luis R. Rodriguez
2009-03-11 2:52 ` Luis R. Rodriguez
2009-03-11 9:10 ` [ath9k-devel] " Johannes Berg
2009-03-11 9:10 ` Johannes Berg
2009-03-11 16:07 ` [ath9k-devel] " Luis R. Rodriguez
2009-03-11 16:07 ` Luis R. Rodriguez
2009-03-11 17:13 ` [ath9k-devel] " Johannes Berg
2009-03-11 17:13 ` Johannes Berg
2009-03-11 17:20 ` [ath9k-devel] " Luis R. Rodriguez
2009-03-11 17:20 ` Luis R. Rodriguez
2009-03-11 17:30 ` Johannes Berg
2009-03-11 17:30 ` Johannes Berg
2009-03-11 21:08 ` Luis R. Rodriguez
2009-03-11 21:08 ` Luis R. Rodriguez
2009-03-11 21:38 ` Christian Lamparter [this message]
2009-03-11 21:38 ` Christian Lamparter
2009-03-11 20:51 ` Luis R. Rodriguez
2009-03-11 20:51 ` Luis R. Rodriguez
2009-03-11 2:52 ` [ath9k-devel] [PATCH v5 2/4] ath9k: AR9280 PCI devices must serialize IO as well Luis R. Rodriguez
2009-03-11 2:52 ` Luis R. Rodriguez
2009-03-11 2:52 ` [ath9k-devel] [PATCH v5 3/4] ath9k: add cpu notifier to enhance device configuration Luis R. Rodriguez
2009-03-11 2:52 ` Luis R. Rodriguez
2009-03-11 2:52 ` [ath9k-devel] [PATCH v5 4/4] ath9k: remove dummy PCI "retry timeout" fix Luis R. Rodriguez
2009-03-11 2:52 ` 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=200903112238.24116.chunkeey@web.de \
--to=chunkeey@web.de \
--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.