From: Johannes Berg <johannes@sipsolutions.net>
To: Arik Nemtsov <arik@wizery.com>
Cc: linux-wireless@vger.kernel.org, Luciano Coelho <coelho@ti.com>
Subject: Re: Fwd: [PATCH 06/10] mac80211: add HW flag for disabling auto link-PS in AP mode
Date: Tue, 18 Jan 2011 10:05:31 +0100 [thread overview]
Message-ID: <1295341531.3563.4.camel@jlt3.sipsolutions.net> (raw)
In-Reply-To: <AANLkTiky+j6P9oibrWzDzfNugrADtb9p21TVn7WFAY6_@mail.gmail.com>
On Tue, 2011-01-18 at 00:47 +0200, Arik Nemtsov wrote:
> > anyway. I'd appreciate if you could actually see which things would
> > potentially race -- I took a brief look into these functions and it
> > didn't look like there are actually races except of these two against
> > each other maybe?
>
> Upon closer examination, I could find no races in the RX path. A race
> of ps_start/stop is possible of course, but I guess we can demand the
> calls to be synchronized against each other?
Yeah that seems fair. It'd be a strange driver too anyway, come to think
of it, since this is all from the device so needs to be processed from a
tasklet or whatever anyway.
> I did notice some concurrency that can happen in the TX path. I think
> the same essential race is described in
> ieee80211_handle_filtered_frame() between RX and TX paths. Only this
> time the PS state is changed manually and not in the RX handler. The
> warning in ieee80211_handle_filtered_frame() can be expanded to
> include:
> "always change PS state of connected stations before TX status events
> if ordering can be unknown, for example with different interrupt
> status bits."
Right, that was RX first, then TX status, I guess it can be extended a
bit. But really, this race doesn't apply since the entire PS state
management is done by the device here, and mac80211 just follows it.
> > > sta_notify is pretty useless when the low level driver calls toggles
> > > the PS-mode by itself. How about I simply remove the call to
> > > sta_notify in case IEEE80211_HW_AP_LINK_PS is set?
> > > If a low level driver needs to do some deferred processing after a
> > > PS-mode transition, it can queue a work on its own..
> >
> > Yes, that's probably a good idea -- but definitely needs to be
> > documented in the sta_notify docs. OTOH, mac80211 de-bounces sta_notify
> > in a way. Maybe that needs to be done for the function call as well,
> > maybe via a return value?
> >
>
> I'm afraid I didn't catch your meaning here.
Well if for instance the station happens to send two frames with the PM
bit set, meaning that it is in PS-poll mode but doesn't want to wake up
even though it's transmitting a frame, mac80211 will only call
sta_notify once for the first frame to tell the driver the station went
to sleep -- the second frame just indicates that it's still asleep.
The same might happen with this, but of course it depends on what the
device does. If the driver will call the new API function twice, then
mac80211 will be very confused. Therefore, I think the new API function
should do some checks about whether the station is already asleep/awake
before invoking ap_sta_ps_start/end so that the counters are correct.
In this case, the driver might want to know if the station was already
in the indicated state -- this might be indicated by the return value.
johannes
next prev parent reply other threads:[~2011-01-18 9:04 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-16 5:42 [PATCH 00/10] wl12xx: AP-mode per link PSM Arik Nemtsov
2011-01-16 5:42 ` [PATCH 01/10] wl12xx: fix potential race condition with TX queue watermark Arik Nemtsov
2011-01-16 5:42 ` [PATCH 02/10] wl12xx: AP-mode - fix race condition on sta connection Arik Nemtsov
2011-01-26 14:01 ` Luciano Coelho
2011-01-26 20:04 ` Arik Nemtsov
2011-01-26 21:28 ` Luciano Coelho
2011-01-26 21:33 ` Johannes Berg
2011-01-26 21:44 ` Arik Nemtsov
2011-01-26 21:54 ` Johannes Berg
2011-01-26 22:02 ` Arik Nemtsov
2011-01-26 22:08 ` Johannes Berg
2011-01-26 22:16 ` Arik Nemtsov
2011-01-26 23:11 ` Johannes Berg
2011-01-27 0:20 ` Jouni Malinen
2011-01-27 8:21 ` Johannes Berg
2011-01-16 5:42 ` [PATCH 03/10] wl12xx: AP-mode - TX queue per link in AC Arik Nemtsov
2011-01-16 5:42 ` [PATCH 04/10] mac80211: do not calc frame duration when using HW rate-control Arik Nemtsov
2011-01-16 8:34 ` Johannes Berg
2011-01-16 5:42 ` [PATCH 05/10] wl12xx: report invalid TX rate when returning non-TX-ed skbs Arik Nemtsov
2011-01-27 9:51 ` Luciano Coelho
2011-01-27 10:33 ` Johannes Berg
2011-01-30 6:57 ` Arik Nemtsov
2011-01-16 5:42 ` [PATCH 06/10] mac80211: add HW flag for disabling auto link-PS in AP mode Arik Nemtsov
2011-01-16 8:50 ` Johannes Berg
[not found] ` <AANLkTik=WDsehr0EgW7QemfdmokvaLzg1ugASwiuCOXt@mail.gmail.com>
2011-01-16 21:53 ` Fwd: " Arik Nemtsov
2011-01-17 9:35 ` Johannes Berg
2011-01-17 22:47 ` Arik Nemtsov
2011-01-18 9:05 ` Johannes Berg [this message]
2011-01-18 19:17 ` Arik Nemtsov
2011-01-27 11:39 ` Luciano Coelho
2011-01-16 5:42 ` [PATCH 07/10] wl12xx: AP-mode - support HW based link PS monitoring Arik Nemtsov
2011-01-27 11:41 ` Luciano Coelho
2011-01-16 5:42 ` [PATCH 08/10] wl12xx: AP mode - fix bug in cleanup of wl1271_op_sta_add() Arik Nemtsov
2011-01-16 5:42 ` [PATCH 09/10] wl12xx: AP-mode - count free FW TX blocks per link Arik Nemtsov
2011-01-16 5:42 ` [PATCH 10/10] wl12xx: AP-mode - management of links in PS-mode Arik Nemtsov
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=1295341531.3563.4.camel@jlt3.sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=arik@wizery.com \
--cc=coelho@ti.com \
--cc=linux-wireless@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).