New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 675286 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Dec 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

laptop-mode: Disable module wireless-power

Project Member Reported by mka@chromium.org, Dec 17 2016

Issue description

Chrome OS uses the 'wifi-nl80211-powermgmt' module to enable/disable WiFi power save mode. The original laptop-mode module 'wireless-power' is still enabled and exits with an error since it can't find iwconfig. This causes "laptop-mode force" to end prematurely and exit with an error code.
 

Comment 1 by tbroch@chromium.org, Dec 17 2016

Cc: snanda@chromium.org
Just want to make sure I understand the history here.

looks like iwconfig is part of net-wireless/wireless-tools

and is presently only part of dev image.

Did it used to be in included in the base image as well?

Agreed disabling the wireless-power module in lmt here:

  https://chromium-review.googlesource.com/c/422094/

is the right short-term solution.

Should the long term plan be to:

1. include iwconfig in base image or
2. patch wireless-power module to use an alternative to iwconfig if available?
3. something else.

Comment 2 by snanda@chromium.org, Dec 17 2016

iw is what we should be using for this instead of iwconfig.

Comment 3 by mka@chromium.org, Dec 17 2016

The patch that enabled use of iw:

We support only nl80211 WiFi devices; no more WEXT support:
- remove old script that used iwconfig
- add new module script that uses iw to ena/dis power save

Note this also fixes wifi power save operation for nl80211 devices as the iwconfig code never worked right due to it checking the wrong file under /sys.  This means we should now have lower latency on AC because we'll turn off power save.

https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/app-laptop/laptop-mode-tools/files/0005-switch-wifi-support-to-nl80211.patch

(I already patched the wireless-power module in upstream, but since our long/mid-term plan is to get rid of laptop-mode altogether it's probably not worth to integrate it)
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 17 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/8f4e89675d36ff3cd937281cc970933405c0dbc7

commit 8f4e89675d36ff3cd937281cc970933405c0dbc7
Author: Matthias Kaehlcke <mka@chromium.org>
Date: Sat Dec 17 00:53:33 2016

laptop-mode-tools: Disable module wireless-power

Chrome OS uses the 'wifi-nl80211-powermgmt' module to enable/disable
WiFi powersave mode. The original laptop-mode module 'wireless-power'
is still enabled and exits with an error since it can't find iwconfig.
This causes "laptop_mode force" to end prematurely. Disable the module.

BUG= chromium:675286 
TEST=manual with additional logs in laptop_mode script

Change-Id: I30398aff7f0262f5bc5bcbc963e0246434a15228
Reviewed-on: https://chromium-review.googlesource.com/422094
Commit-Ready: Matthias Kaehlcke <mka@chromium.org>
Tested-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[rename] https://crrev.com/8f4e89675d36ff3cd937281cc970933405c0dbc7/app-laptop/laptop-mode-tools/laptop-mode-tools-1.59-r39.ebuild
[add] https://crrev.com/8f4e89675d36ff3cd937281cc970933405c0dbc7/app-laptop/laptop-mode-tools/files/0034-wireless-power-disable-module.patch
[modify] https://crrev.com/8f4e89675d36ff3cd937281cc970933405c0dbc7/app-laptop/laptop-mode-tools/laptop-mode-tools-1.59.ebuild

Comment 5 by mka@chromium.org, Dec 19 2016

Status: Fixed (was: Assigned)
Additional info:

The premature exit of 'laptop_mode force' can have a nasty side-effect. After the command exits often no other laptop-mode instance can acquire the inner LMT lock (fd=9) for 30s:

[   16.389989] MKA: LM (1727): lmt_main_function: force
[   16.517003] MKA: LM (1762): Couldn't acquire lock. PARAMS='force modules=wifi-nl80211-powermgmt')
[   17.555442] MKA: LM (1762): Couldn't acquire lock. PARAMS='force modules=wifi-nl80211-powermgmt')
[   18.248635] MKA: wireless-power (1727): EXIT: no iwconfig
[   18.565693] MKA: LM (1762): Couldn't acquire lock. PARAMS='force modules=wifi-nl80211-powermgmt')
[   19.571777] MKA: LM (1762): Couldn't acquire lock. PARAMS='force modules=wifi-nl80211-powermgmt')
[   20.576955] MKA: LM (1762): Couldn't acquire lock. PARAMS='force modules=wifi-nl80211-powermgmt')
[   21.581577] MKA: LM (1762): Couldn't acquire lock. PARAMS='force modules=wifi-nl80211-powermgmt')
[   22.592947] MKA: LM (1762): Couldn't acquire lock. PARAMS='force modules=wifi-nl80211-powermgmt')
[   23.603972] MKA: LM (1762): Couldn't acquire lock. PARAMS='force modules=wifi-nl80211-powermgmt')
[   24.614005] MKA: LM (1762): Couldn't acquire lock. PARAMS='force modules=wifi-nl80211-powermgmt')
[   25.624140] MKA: LM (1762): Couldn't acquire lock. PARAMS='force modules=wifi-nl80211-powermgmt')
[   26.635638] MKA: LM (1851): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=1-0:1.0')
[   27.646647] MKA: LM (1851): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=1-0:1.0')
[   28.657003] MKA: LM (1851): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=1-0:1.0')
[   29.667449] MKA: LM (1851): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=1-0:1.0')
[   30.677886] MKA: LM (1851): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=1-0:1.0')
[   31.691165] MKA: LM (1851): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=1-0:1.0')
[   32.698771] MKA: LM (1851): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=1-0:1.0')
[   33.707761] MKA: LM (1851): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=1-0:1.0')
[   34.718627] MKA: LM (1851): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=1-0:1.0')
[   35.728898] MKA: LM (1851): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=1-0:1.0')
[   36.741048] MKA: LM (2154): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=usb6')
[   37.751542] MKA: LM (2154): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=usb6')
[   38.762595] MKA: LM (2154): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=usb6')
[   39.772831] MKA: LM (2154): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=usb6')
[   40.782976] MKA: LM (2154): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=usb6')
[   41.793451] MKA: LM (2154): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=usb6')
[   42.800280] MKA: LM (2154): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=usb6')
[   43.807293] MKA: LM (2154): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=usb6')
[   44.817916] MKA: LM (2154): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=usb6')
[   45.824685] MKA: LM (2154): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=usb6')
[   46.834536] MKA: LM (2188): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=6-1')
[   47.847189] MKA: LM (2188): Couldn't acquire lock. PARAMS='force modules=usb-autosuspend devices=6-1')
[   48.255753] MKA: LM (2188): lmt_main_function: force modules=usb-autosuspend devices=6-1

Apparently the 30s period stems from the wait time of the outer lock (fd=8), if it is reduced the inner lock can be acquired earlier. Not sure how the wait time of the outer lock affects the inner lock.

Comment 6 by dchan@google.com, Mar 4 2017

Labels: VerifyIn-58

Comment 7 by son...@google.com, Apr 4 2017

Status: Verified (was: Fixed)
Verified on build 9334.33.0

Sign in to add a comment