From: Johannes Berg <johannes@sipsolutions.net>
To: Ben Greear <greearb@candelatech.com>
Cc: linux-wireless@vger.kernel.org
Subject: Re: [PATCH v9] mac80211: Optimize scans on current operating channel.
Date: Wed, 02 Feb 2011 22:28:23 +0100 [thread overview]
Message-ID: <1296682103.5671.41.camel@jlt3.sipsolutions.net> (raw)
In-Reply-To: <4D49AEFA.6090202@candelatech.com>
On Wed, 2011-02-02 at 11:22 -0800, Ben Greear wrote:
> > Based on the powersave comments I had earlier, maybe we should remove
> > that bit for now? Work items here require powersave is disabled, but we
> > won't do that right now if we're on the same channel.
>
> The problem is, if we leave the work_work() in the original
> manner, the on/off channel state changes are not properly
> tracked because work blindly assumes it goes off/on channel.
> This breaks assumptions about when we must call the return-to-channel
> logic. I think if we do not religiously track the on/off channel
> state changes it would be too easy to get in a state where we think
> we are on-channel but haven't actually re-enabled xmit queues, etc.
But if we pretend all work is off-channel, won't it be OK to return from
off-channel, even if it isn't really another channel?
> I think I would rather change the work logic to expressly disable/enable
> powersave. That wouldn't be difficult, would it?
Probably not -- but the code you modified regarding powersave probably
needs adjustment then.
> I don't think it does anything if we are scanning on-channel
> with my patch.
> The enable/disable logic is now in the offchannel code...
>
> Do we need to disable it if we are scanning on channel? If so,
> I can add that explicitly to the scanning code.
Yes, I think we do need to do that, since otherwise we won't actually
receive any beacons other than from our own AP.
> While we are on that topic, it seems the conf.flags are set
> opposite to what I expect. Is that code below correct?
I think so.
> /* inform AP that we are awake again, unless power save is enabled */
When we return from scanning, we're awake, but the AP thinks we're
asleep.
> static void ieee80211_offchannel_ps_disable(struct ieee80211_sub_if_data *sdata)
> {
> struct ieee80211_local *local = sdata->local;
>
> if (!local->ps_sdata)
> ieee80211_send_nullfunc(local, sdata, 0);
So in the case we shouldn't go to sleep we just tell the AP that we woke
up again.
> else if (local->offchannel_ps_enabled) {
> /*
> * In !IEEE80211_HW_PS_NULLFUNC_STACK case the hardware
> * will send a nullfunc frame with the powersave bit set
> * even though the AP already knows that we are sleeping.
> * This could be avoided by sending a null frame with power
> * save bit disabled before enabling the power save, but
> * this doesn't gain anything.
> *
> * When IEEE80211_HW_PS_NULLFUNC_STACK is enabled, no need
> * to send a nullfunc frame because AP already knows that
> * we are sleeping, let's just enable power save mode in
> * hardware.
> */
> local->hw.conf.flags |= IEEE80211_CONF_PS;
And in the other case we really go to sleep.
johannes
johannes
next prev parent reply other threads:[~2011-02-02 21:28 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-02 18:18 [PATCH v9] mac80211: Optimize scans on current operating channel greearb
2011-02-02 18:55 ` Johannes Berg
2011-02-02 19:22 ` Ben Greear
2011-02-02 21:28 ` Johannes Berg [this message]
2011-02-02 22:12 ` Ben Greear
2011-02-03 8:19 ` Johannes Berg
2011-02-04 18:58 ` Ben Greear
2011-02-04 19:09 ` Johannes Berg
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=1296682103.5671.41.camel@jlt3.sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=greearb@candelatech.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).