All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kalle Valo <kalle.valo@nokia.com>
To: "Johannes Berg" <johannes@sipsolutions.net>
Cc: linux-wireless@vger.kernel.org
Subject: Re: Thoughts about mac80211 client PS implementation
Date: Wed, 05 Nov 2008 22:54:03 +0200	[thread overview]
Message-ID: <87fxm5ki6s.fsf@nokia.com> (raw)
In-Reply-To: <1225917235.3619.180.camel@johannes.berg> (ext Johannes Berg's message of "Wed\, 05 Nov 2008 21\:33\:55 +0100")

Johannes Berg <johannes@sipsolutions.net> writes:

> On Wed, 2008-11-05 at 22:27 +0200, Kalle Valo wrote:
>> I'm working on implementing the "dynamic Power Save" (ie. PS enabled
>> after an idle period) feature to mac80211. Here are my current
>> thoughts:
>> 
>> First of all, I think we should enable CONF_PS only when associated.
>> So instead of directly calling hw_config() from
>> ieee80211_ioctl_siwpower() we should do that only when associated.
>> Otherwise we change it only after association or disassociation. This
>> means that we have to add a separate bit/variable for storing what
>> user has requested.
>
> Totally agreed.

Good :)

>> PS should be disabled while associated and running software scan, and
>> naturally re-enabled after the scan has finished. I assume hardware
>> scanning implementations are clever enough to disable PS when scanning
>> and we don't have to worry about that case.
>
> And on that too. And should there be a monitor flag that disables PS, so
> that we can "refcount" the PS bit in a way?

Sorry, I don't follow you here. What do you mean by a monitor flag?

>> The dynamic PS implementation is still a bit open issue for me. I have
>> been thinking something like that in tx.c frames will be queued if PS
>> is enabled, PS will be disabled in a workqueue by calling
>> ieee80211_hw_config() and only after that the queued frames are
>> transfered. So something similar as sta->ps_tx_buf does in AP mode. No
>> idea if this is feasible or not.
>
> Not sure I understand the dynamic PS yet. 

Basically the idea is to disable PS whenever we are transmitting (and
maybe also receiving, don't know yet) frames, but whenever there's a
long enough idle period PS would be enabled again. So in principle
this would be a compromise of low power consumption and low latency.

Naturally the idle period would be configurable with siwpower() and
whatever nl80211 equivalent we will have in future.

> Why would you queue up frames? To reduce the number of radio wakeups
> when TX traffic is low?

Just because I assume that invoke_tx_handlers() cannot sleep but
ieee80211_hw_config() sleeps. I didn't think of any other way to solve
this, but I haven't thought that much about this. What do you think?

-- 
Kalle Valo

  parent reply	other threads:[~2008-11-05 20:54 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-05 20:27 Thoughts about mac80211 client PS implementation Kalle Valo
2008-11-05 20:33 ` Johannes Berg
2008-11-05 20:43   ` Luis R. Rodriguez
2008-11-05 21:06     ` Kalle Valo
2008-11-06 12:20     ` Felix Fietkau
2008-11-05 20:54   ` Kalle Valo [this message]
2008-11-05 21:05     ` Johannes Berg
2008-11-05 21:25       ` Kalle Valo
2008-11-05 21:55         ` Tomas Winkler
2008-11-06  7:35           ` Kalle Valo
2008-11-06 11:00         ` Johannes Berg
2008-11-07 16:06           ` Johannes Berg
2008-11-07 17:58             ` Kalle Valo

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=87fxm5ki6s.fsf@nokia.com \
    --to=kalle.valo@nokia.com \
    --cc=johannes@sipsolutions.net \
    --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 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.