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

Issue 782368 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Sep 25
Cc:
Components:
EstimatedDays: ----
NextAction: 2017-11-08
OS: Chrome
Pri: 1
Type: Feature



Sign in to add a comment

Switch over Intel wifi devices to using Intel's cfg80211

Project Member Reported by kirtika@google.com, Nov 7 2017

Issue description

Prior discussion at: https://bugs.chromium.org/p/chromium/issues/detail?id=780293

Feature description: 
cfg80211 is a layer in the wireless stack. Currently, Chrome OS picks up the cfg80211, like all other things in the kernel, from upstream, when a kernel version is fixed. We continue to use that cfg80211 with sporadic patches and bugfixes on top. 
The problem is that with 5 active kernels shipping [1], this implies we are often shipping very old cfg80211 and the Intel driver folks have trouble shipping their driver+mac80211 with the old cfg80211. The proposal is to get Intel's cfg80211 but apply it only on Intel devices. 

This or an alternate solution should launch in R64, as this is blocking the Core30 Intel driver drop. 


[1] 3.8, 3.10, 3.14 and 4.4 - only 4 of these kernels have Intel wifi devices. 
3.10 doesn't have any Intel devices on it anymore.


 

Comment 1 by kirtika@google.com, Nov 7 2017

Labels: M-64
The NextAction date has arrived: 2017-11-08

Comment 3 by yoshi@chromium.org, Jan 3 2018

Cc: -yoshi@chromium.org
Cc: benchan@chromium.org kirtika@chromium.org harpreet@chromium.org dsunk...@chromium.org
 Issue 803957  has been merged into this issue.
Labels: -M-64 -PM-yoshiat ReleaseBlock-Stable RegressedIn-65 M-65
I'm dup'ing some regressions against this bug, since the bugfixes are targeting this one. I believe this stuff started to land in M65 and is causing problems. Fixes are in flight.
Project Member

Comment 6 by bugdroid1@chromium.org, Jan 31 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/aosp/platform/system/connectivity/shill/+/6455013e3b0038a35473756687cf2348b5c77c33

commit 6455013e3b0038a35473756687cf2348b5c77c33
Author: Kirtika Ruchandani <kirtika@google.com>
Date: Wed Jan 31 01:47:15 2018

init: Get rid of load_cfg80211

network-services.conf auto-loads cfg80211 before shill starts. This is a
problem for Chrome OS, as we introduce iwl7000_cfg80211 on Intel
platforms. Now we have two copies of cfg80211, and the wrong one gets loaded
first. This leads to a kernel warning when iwlwifi tries to load
iwl700_cfg80211:

mnt/host/source/src/third_party/kernel/v4.4/fs/sysfs/dir.c:31 sysfs_warn_dup+0x64/0x73()
2018-01-17T16:48:51.055515-08:00 WARNING kernel: [   46.896091] sysfs: cannot create duplicate filename '/class/ieee80211'
2018-01-17T16:48:51.058117-08:00 WARNING kernel: [   46.896097] Modules linked in: iwl7000_cfg80211(+) rfcomm uinput zram [snipped]
2018-01-17T16:48:51.058156-08:00 WARNING kernel: [   46.899200] CPU: 1 PID: 3066 Comm: modprobe Tainted: G     U          4.4.70 #2
2018-01-17T16:48:51.058160-08:00 WARNING kernel: [   46.899211] Hardware name: Google Reef/Reef, BIOS Google_Reef.9042.59.0 02/27/2017
2018-01-17T16:48:51.058162-08:00 WARNING kernel: [   46.899219]  0000000000000286 00000000f738afb5 ffff88026e9dbb68 ffffffffaacf350a
2018-01-17T16:48:51.058165-08:00 WARNING kernel: [   46.899237]  ffff88026e9dbbb0 0000000000000009 ffff88026e9dbba0 ffffffffaaa6bdee
2018-01-17T16:48:51.058167-08:00 WARNING kernel: [   46.899252]  ffffffffaabed7e8 ffff88026e8e6000 ffff88024acc6890 ffff8802768a5618
2018-01-17T16:48:51.058170-08:00 WARNING kernel: [   46.899268] Call Trace:
2018-01-17T16:48:51.058172-08:00 WARNING kernel: [   46.899288]  [<ffffffffaacf350a>] dump_stack+0x4d/0x63

network-services was added to autoload cfg80211 in CL:47829, and since
kernels after v3.3 already take care of loading cfg80211, it is redundant.
Thanks to Brian Norris for digging up commit afa8430953302
"genetlink: add auto module loading".
It is helpful to keep network-services around as it services as a
generic checkpoint for (interface-agnostic) network status at boot.

With load_cfg80211 removed, network-services doesn't need any
transformations before the ebuild installs it into the rootfs, so get
rid of the .in suffix.

CQ-DEPEND=CL:890079
BUG=b:68778576,  chromium:782368 
TEST=(a) Built with this change and Core31 on meowth 4.14 kernel, checked
     that wifi comes up correctly without the kernel warning above, and
     lsmod shows iwl7000_cfg80211, iwl7000_mac80211 and iwlwifi loaded.
     (b) Tests on VM (betty) without wifi USE flag enabled
     (c) Tests on 3.18, 3.14 and 4.4 kernel-based devices

Change-Id: I7f80886a99f33fd9fdbcd6bf069401eb20aed0fb
Reviewed-on: https://chromium-review.googlesource.com/890221
Commit-Ready: Kirtika Ruchandani <kirtika@chromium.org>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[rename] https://crrev.com/6455013e3b0038a35473756687cf2348b5c77c33/init/network-services.service
[rename] https://crrev.com/6455013e3b0038a35473756687cf2348b5c77c33/init/network-services.conf

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 31 2018

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

commit 0210eb644f8eb11ebb9ca1623e55998863aaf83c
Author: Kirtika Ruchandani <kirtika@google.com>
Date: Wed Jan 31 01:47:15 2018

shill: remove load_cfg80211 in init/network-services

network-services.conf auto-loads cfg80211 before shill starts. This is a
problem for Chrome OS, as we introduce iwl7000_cfg80211 on Intel
platforms. Now we have two copies of cfg80211, and the wrong one gets loaded
first. This leads to a kernel warning when iwlwifi tries to load
iwl700_cfg80211:

mnt/host/source/src/third_party/kernel/v4.4/fs/sysfs/dir.c:31 sysfs_warn_dup+0x64/0x73()
2018-01-17T16:48:51.055515-08:00 WARNING kernel: [   46.896091] sysfs: cannot create duplicate filename '/class/ieee80211'
2018-01-17T16:48:51.058117-08:00 WARNING kernel: [   46.896097] Modules linked in: iwl7000_cfg80211(+) rfcomm uinput zram [snipped]
2018-01-17T16:48:51.058156-08:00 WARNING kernel: [   46.899200] CPU: 1 PID: 3066 Comm: modprobe Tainted: G     U          4.4.70 #2
2018-01-17T16:48:51.058160-08:00 WARNING kernel: [   46.899211] Hardware name: Google Reef/Reef, BIOS Google_Reef.9042.59.0 02/27/2017
2018-01-17T16:48:51.058162-08:00 WARNING kernel: [   46.899219]  0000000000000286 00000000f738afb5 ffff88026e9dbb68 ffffffffaacf350a
2018-01-17T16:48:51.058165-08:00 WARNING kernel: [   46.899237]  ffff88026e9dbbb0 0000000000000009 ffff88026e9dbba0 ffffffffaaa6bdee
2018-01-17T16:48:51.058167-08:00 WARNING kernel: [   46.899252]  ffffffffaabed7e8 ffff88026e8e6000 ffff88024acc6890 ffff8802768a5618
2018-01-17T16:48:51.058170-08:00 WARNING kernel: [   46.899268] Call Trace:
2018-01-17T16:48:51.058172-08:00 WARNING kernel: [   46.899288]  [<ffffffffaacf350a>] dump_stack+0x4d/0x63

network-services was added to autoload cfg80211 in CL:47829, and since
kernels after v3.3 already take care of loading cfg80211, it is redundant.
Thanks to Brian Norris for digging up commit afa8430953302
"genetlink: add auto module loading".
It is helpful to keep network-services around as it serves as a
generic checkpoint for (interface-agnostic) network status at boot.

CQ-DEPEND=CL:890221
BUG=b:68778576,  chromium:782368 
TEST=(a) Built with CL:890221 and Core31 on meowth 4.14 kernel, checked
     that wifi comes up correctly without the kernel warning above, and
     lsmod shows iwl7000_cfg80211, iwl7000_mac80211 and iwlwifi loaded.
     (b) Tests on VM (betty) without wifi USE flag enabled
     (c) Tests on 3.18, 3.14 and 4.4 kernel-based devices

Change-Id: I69e85246d380a8dee6da6b5e19dda5070fd704b0
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/890079
Commit-Ready: Kirtika Ruchandani <kirtika@chromium.org>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/0210eb644f8eb11ebb9ca1623e55998863aaf83c/chromeos-base/shill/shill-9999.ebuild

Project Member

Comment 8 by bugdroid1@chromium.org, Feb 6 2018

Labels: merge-merged-release-R65-10323.B
The following revision refers to this bug:
  https://chromium.googlesource.com/aosp/platform/system/connectivity/shill/+/af72f428ecfae00cc6e2ee786037948d25f60bdc

commit af72f428ecfae00cc6e2ee786037948d25f60bdc
Author: Kirtika Ruchandani <kirtika@google.com>
Date: Tue Feb 06 21:12:43 2018

init: Get rid of load_cfg80211

network-services.conf auto-loads cfg80211 before shill starts. This is a
problem for Chrome OS, as we introduce iwl7000_cfg80211 on Intel
platforms. Now we have two copies of cfg80211, and the wrong one gets loaded
first. This leads to a kernel warning when iwlwifi tries to load
iwl700_cfg80211:

mnt/host/source/src/third_party/kernel/v4.4/fs/sysfs/dir.c:31 sysfs_warn_dup+0x64/0x73()
2018-01-17T16:48:51.055515-08:00 WARNING kernel: [   46.896091] sysfs: cannot create duplicate filename '/class/ieee80211'
2018-01-17T16:48:51.058117-08:00 WARNING kernel: [   46.896097] Modules linked in: iwl7000_cfg80211(+) rfcomm uinput zram [snipped]
2018-01-17T16:48:51.058156-08:00 WARNING kernel: [   46.899200] CPU: 1 PID: 3066 Comm: modprobe Tainted: G     U          4.4.70 #2
2018-01-17T16:48:51.058160-08:00 WARNING kernel: [   46.899211] Hardware name: Google Reef/Reef, BIOS Google_Reef.9042.59.0 02/27/2017
2018-01-17T16:48:51.058162-08:00 WARNING kernel: [   46.899219]  0000000000000286 00000000f738afb5 ffff88026e9dbb68 ffffffffaacf350a
2018-01-17T16:48:51.058165-08:00 WARNING kernel: [   46.899237]  ffff88026e9dbbb0 0000000000000009 ffff88026e9dbba0 ffffffffaaa6bdee
2018-01-17T16:48:51.058167-08:00 WARNING kernel: [   46.899252]  ffffffffaabed7e8 ffff88026e8e6000 ffff88024acc6890 ffff8802768a5618
2018-01-17T16:48:51.058170-08:00 WARNING kernel: [   46.899268] Call Trace:
2018-01-17T16:48:51.058172-08:00 WARNING kernel: [   46.899288]  [<ffffffffaacf350a>] dump_stack+0x4d/0x63

network-services was added to autoload cfg80211 in CL:47829, and since
kernels after v3.3 already take care of loading cfg80211, it is redundant.
Thanks to Brian Norris for digging up commit afa8430953302
"genetlink: add auto module loading".
It is helpful to keep network-services around as it services as a
generic checkpoint for (interface-agnostic) network status at boot.

With load_cfg80211 removed, network-services doesn't need any
transformations before the ebuild installs it into the rootfs, so get
rid of the .in suffix.

CQ-DEPEND=CL:890079
BUG=b:68778576,  chromium:782368 
TEST=(a) Built with this change and Core31 on meowth 4.14 kernel, checked
     that wifi comes up correctly without the kernel warning above, and
     lsmod shows iwl7000_cfg80211, iwl7000_mac80211 and iwlwifi loaded.
     (b) Tests on VM (betty) without wifi USE flag enabled
     (c) Tests on 3.18, 3.14 and 4.4 kernel-based devices

Change-Id: I7f80886a99f33fd9fdbcd6bf069401eb20aed0fb
Reviewed-on: https://chromium-review.googlesource.com/890221
Commit-Ready: Kirtika Ruchandani <kirtika@chromium.org>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
(cherry picked from commit 6455013e3b0038a35473756687cf2348b5c77c33)

[rename] https://crrev.com/af72f428ecfae00cc6e2ee786037948d25f60bdc/init/network-services.service
[rename] https://crrev.com/af72f428ecfae00cc6e2ee786037948d25f60bdc/init/network-services.conf

Project Member

Comment 9 by bugdroid1@chromium.org, Feb 6 2018

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

commit 77315d03834f219f8d2a410294d239c65587e6f0
Author: Kirtika Ruchandani <kirtika@google.com>
Date: Tue Feb 06 21:15:31 2018

shill: remove load_cfg80211 in init/network-services

network-services.conf auto-loads cfg80211 before shill starts. This is a
problem for Chrome OS, as we introduce iwl7000_cfg80211 on Intel
platforms. Now we have two copies of cfg80211, and the wrong one gets loaded
first. This leads to a kernel warning when iwlwifi tries to load
iwl700_cfg80211:

mnt/host/source/src/third_party/kernel/v4.4/fs/sysfs/dir.c:31 sysfs_warn_dup+0x64/0x73()
2018-01-17T16:48:51.055515-08:00 WARNING kernel: [   46.896091] sysfs: cannot create duplicate filename '/class/ieee80211'
2018-01-17T16:48:51.058117-08:00 WARNING kernel: [   46.896097] Modules linked in: iwl7000_cfg80211(+) rfcomm uinput zram [snipped]
2018-01-17T16:48:51.058156-08:00 WARNING kernel: [   46.899200] CPU: 1 PID: 3066 Comm: modprobe Tainted: G     U          4.4.70 #2
2018-01-17T16:48:51.058160-08:00 WARNING kernel: [   46.899211] Hardware name: Google Reef/Reef, BIOS Google_Reef.9042.59.0 02/27/2017
2018-01-17T16:48:51.058162-08:00 WARNING kernel: [   46.899219]  0000000000000286 00000000f738afb5 ffff88026e9dbb68 ffffffffaacf350a
2018-01-17T16:48:51.058165-08:00 WARNING kernel: [   46.899237]  ffff88026e9dbbb0 0000000000000009 ffff88026e9dbba0 ffffffffaaa6bdee
2018-01-17T16:48:51.058167-08:00 WARNING kernel: [   46.899252]  ffffffffaabed7e8 ffff88026e8e6000 ffff88024acc6890 ffff8802768a5618
2018-01-17T16:48:51.058170-08:00 WARNING kernel: [   46.899268] Call Trace:
2018-01-17T16:48:51.058172-08:00 WARNING kernel: [   46.899288]  [<ffffffffaacf350a>] dump_stack+0x4d/0x63

network-services was added to autoload cfg80211 in CL:47829, and since
kernels after v3.3 already take care of loading cfg80211, it is redundant.
Thanks to Brian Norris for digging up commit afa8430953302
"genetlink: add auto module loading".
It is helpful to keep network-services around as it serves as a
generic checkpoint for (interface-agnostic) network status at boot.

CQ-DEPEND=CL:890221
BUG=b:68778576,  chromium:782368 
TEST=(a) Built with CL:890221 and Core31 on meowth 4.14 kernel, checked
     that wifi comes up correctly without the kernel warning above, and
     lsmod shows iwl7000_cfg80211, iwl7000_mac80211 and iwlwifi loaded.
     (b) Tests on VM (betty) without wifi USE flag enabled
     (c) Tests on 3.18, 3.14 and 4.4 kernel-based devices

Change-Id: I69e85246d380a8dee6da6b5e19dda5070fd704b0
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/890079
Commit-Ready: Kirtika Ruchandani <kirtika@chromium.org>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
(cherry picked from commit 0210eb644f8eb11ebb9ca1623e55998863aaf83c)
Reviewed-on: https://chromium-review.googlesource.com/905502
Commit-Queue: Kirtika Ruchandani <kirtika@chromium.org>
Trybot-Ready: Kirtika Ruchandani <kirtika@chromium.org>

[modify] https://crrev.com/77315d03834f219f8d2a410294d239c65587e6f0/chromeos-base/shill/shill-9999.ebuild

Do we have what we need merged into 65 already for this?

This is marked as release block stable for 65.
Labels: -ReleaseBlock-Stable
Owner: kirtika@google.com
The bugs that the initial merges introduced should now be fixed. I don't think Kirtika has completely finished this work, but at least it's not supremely buggy on M65 any more. So I guess the best thing there is to remove the 'ReleaseBlock-*' label?
Owner: kirtika@chromium.org
Status: WontFix (was: Started)
Adding here for posterity: this should have been closed as "Fixed" for R65, as we switched Intle wifi devices to using Intel's cfg80211 on R65. 
We reverted this in R66 due to boot-time regressions, loss of usb-wifi and other issues with using Intel's cfg80211 (made any other wifi driver non-compliant/non-working on the same unibuild). 
Closing as Wont-Fix since we will not attempt this switch again. 

Sign in to add a comment