public inbox for linux-wireless@vger.kernel.org
 help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: John Linville <linville@tuxdriver.com>,
	linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH] mac80211: tell driver when idle
Date: Wed, 29 Apr 2009 07:33:07 -0700	[thread overview]
Message-ID: <1241015587.997.76.camel@localhost.localdomain> (raw)
In-Reply-To: <1240997537.593.35.camel@johannes.local>

Hi Johannes,

> When we aren't doing anything in mac80211, we can turn off
> much of the hardware, depending on the driver/hw. Not doing
> anything, aka being idle, means:
> 
>  * no monitor interfaces
>  * no AP/mesh/wds interfaces
>  * any station interfaces are in DISABLED state
>  * any IBSS interfaces aren't trying to be in a network
>  * we aren't trying to scan
> 
> By creating a new function that verifies these conditions and calling
> it at strategic points where the states of those conditions change,
> we can easily make mac80211 tell the driver when we are idle to save
> power.
> 
> Additionally, this fixes a small quirk where a recalculated powersave
> state is passed to the driver even if the hardware is about to stopped
> completely.
> 
> This patch intentionally doesn't touch radio_enabled because that is
> currently implemented to be a soft rfkill which is inappropriate here
> when we need to be able to wake up with low latency.
> 
> One thing I'm not entirely sure about is this:
> 
>   phy0: device no longer idle - in use
>   wlan0: direct probe to AP 00:11:24:91:07:4d try 1
>   wlan0 direct probe responded
>   wlan0: authenticate with AP 00:11:24:91:07:4d
>   wlan0: authenticated
> > phy0: device now idle
> > phy0: device no longer idle - in use
>   wlan0: associate with AP 00:11:24:91:07:4d
>   wlan0: RX AssocResp from 00:11:24:91:07:4d (capab=0x401 status=0 aid=1)
>   wlan0: associated
> 
> Is it appropriate to go into idle state for a short time when we have
> just authenticated, but not associated yet? This happens only with the
> userspace SME, because we cannot really know how long it will wait
> before asking us to associate. Would going idle after a short timeout
> be more appropriate? We may need to revisit this, depending on what
> happens.

what about having the hardware set a value for how long something should
be idle before you tell it. I am more thinking about some sort penalty
value from the hardware that can not do this quickly.

Regards

Marcel
 


  parent reply	other threads:[~2009-04-29 14:33 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-29  9:32 [PATCH] mac80211: tell driver when idle Johannes Berg
2009-04-29  9:51 ` Johannes Berg
2009-04-29 10:26 ` [PATCH v2] " Johannes Berg
2009-04-29 14:33 ` Marcel Holtmann [this message]
2009-04-29 14:39   ` [PATCH] " Johannes Berg
2009-04-29 15:14     ` Marcel Holtmann
2009-04-29 16:11       ` Johannes Berg
2009-04-29 16:20         ` Marcel Holtmann
2009-04-29 16:28           ` 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=1241015587.997.76.camel@localhost.localdomain \
    --to=marcel@holtmann.org \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    /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