View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000671 | channel: kernel/el7 | kernel-lt | public | 2016-08-20 16:25 | 2016-09-08 16:43 |
Reporter | orion | Assigned To | burakkucat | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
Summary | 0000671: Disable CONFIG_FW_LOADER_USER_HELPER | ||||
Description | Please disable CONFIG_FW_LOADER_USER_HELPER in the elrepo kernels. This introduces significant delays in loading firmware for various devices. For example: [ 4.318150] iwlwifi 0000:3a:00.0: Direct firmware load for iwlwifi-7265-19.ucode failed with error -2 [ 4.318153] iwlwifi 0000:3a:00.0: Falling back to user helper [ 64.319419] iwlwifi 0000:3a:00.0: Direct firmware load for iwlwifi-7265-18.ucode failed with error -2 [ 64.319429] iwlwifi 0000:3a:00.0: Falling back to user helper [ 124.326998] iwlwifi 0000:3a:00.0: loaded firmware version 17.352738.0 op_mode iwlmvm Each failed attempt results in a 60 second delay in attempting to load the firmware. From my research, this is not recommended to be set, and RHEL and Fedora do not set it. https://bugzilla.redhat.com/show_bug.cgi?id=1317148 https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1398458 http://unix.stackexchange.com/questions/163012/iwlwifi-timeout-delays-firmware-to-be-loaded unfortunately the workaround in the last one didn't work for me. Thanks. /boot/config-3.10.0-327.18.2.el7.x86_64:# CONFIG_FW_LOADER_USER_HELPER is not set /boot/config-3.10.0-327.22.2.el7.x86_64:# CONFIG_FW_LOADER_USER_HELPER is not set /boot/config-3.10.0-327.28.2.el7.x86_64:# CONFIG_FW_LOADER_USER_HELPER is not set /boot/config-3.10.0-327.28.3.el7.x86_64:# CONFIG_FW_LOADER_USER_HELPER is not set /boot/config-4.4.16-1.el7.elrepo.x86_64:CONFIG_FW_LOADER_USER_HELPER=y /boot/config-4.4.16-1.el7.elrepo.x86_64:CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y | ||||
Tags | No tags attached. | ||||
|
Hi, We are looking into this. At present, CONFIG_DELL_RBU depends on FW_LOADER_USER_HELPER (at least in kernel-4.4) which prevents FW_LOADER_USER_HELPER from being disabled. config DELL_RBU tristate "BIOS update support for DELL systems via sysfs" depends on X86 select FW_LOADER select FW_LOADER_USER_HELPER help Say m if you want to have the option of updating the BIOS for your DELL system. Note you need a Dell OpenManage or Dell Update package (DUP) supporting application to communicate with the BIOS regarding the new image for the image update to take effect. See <file:Documentation/dell_rbu.txt> for more details on the driver. |
|
We now have testing kernels available, built from the Linux-4.8-rc3 sources. They may be downloaded from the directories under -- https://elrepo.org/people/ajb/devel/kernel-ml/ Please install the relevant version for your system, boot it and examine the result. If it proves satisfactory, the configuration adjustment will be applied to all of our released kernel-{lt|ml} packages as each set is subsequently rebuilt. |
|
Works for me, although I don't see it trying to load the later firmware revisions now either. I also can't test DELL_RBU. [ 5.575866] iwlwifi 0000:3a:00.0: loaded firmware version 17.352738.0 op_mode iwlmvm Looks like just the FALLBACK option was the culprit? Thanks. |
|
Yes, indeed, it was the FW_LOADER_USER_HELPER_FALLBACK option. The drivers/base/Kconfig file shows -- config UEVENT_HELPER bool "Support for uevent helper" default y help The uevent helper program is forked by the kernel for every uevent. Before the switch to the netlink-based uevent source, this was used to hook hotplug scripts into kernel device events. It usually pointed to a shell script at /sbin/hotplug. This should not be used today, because usual systems create many events at bootup or device discovery in a very short time frame. One forked process per event can create so many processes that it creates a high system load, or on smaller systems it is known to create out-of-memory situations during bootup. config UEVENT_HELPER_PATH string "path to uevent helper" depends on UEVENT_HELPER default "" help To disable user space helper program execution at by default specify an empty string here. This setting can still be altered via /proc/sys/kernel/hotplug or via /sys/kernel/uevent_helper later at runtime. config FW_LOADER_USER_HELPER bool config FW_LOADER_USER_HELPER_FALLBACK bool "Fallback user-helper invocation for firmware loading" depends on FW_LOADER select FW_LOADER_USER_HELPER help This option enables / disables the invocation of user-helper (e.g. udev) for loading firmware files as a fallback after the direct file loading in kernel fails. The user-mode helper is no longer required unless you have a special firmware file that resides in a non-standard path. Moreover, the udev support has been deprecated upstream. If you are unsure about this, say N here. The current configuration file (looking at that for kernel-lt-4.4.19-1.el7.elrepo) has the following options -- [Build64R7 config-4.4]$ grep -E 'CONFIG_UEVENT_HELPER|CONFIG_FW_LOADER_USER_HELPER' config-4.4.19-x86_64 CONFIG_UEVENT_HELPER=y CONFIG_UEVENT_HELPER_PATH="" CONFIG_FW_LOADER_USER_HELPER=y CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y [Build64R7 config-4.4]$ The FALLBACK option will be turned off in the respective configuration files for the next update rebuild of each kernel-{lt|ml}-*-1.el{6|7}.elrepo package set. Thank you for drawing our attention to this issue and for your subsequent testing. |
|
With the recent release of updated kernel-lt and kernel-ml package sets for RHEL7, the discussed configuration adjustment is now present in all of the ELRepo Project's released kernel sets. [Build64 kernels]$ grep -r CONFIG_FW_LOADER_USER_HELPER_FALLBACK * | sort | grep "is not set" el6/config-4.7/config-4.7.3-i686:# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set el6/config-4.7/config-4.7.3-i686-NONPAE:# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set el6/config-4.7/config-4.7.3-x86_64:# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set el6/config-4.8/config-4.8.0-i686:# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set el6/config-4.8/config-4.8.0-i686-NONPAE:# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set el6/config-4.8/config-4.8.0-x86_64:# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set el7/config-4.4/config-4.4.20-x86_64:# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set el7/config-4.7/config-4.7.3-x86_64:# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set el7/config-4.8/config-4.8.0-x86_64:# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set [Build64 kernels]$ Now closing as "resolved/fixed". |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-08-20 16:25 | orion | New Issue | |
2016-08-20 16:25 | orion | Status | new => assigned |
2016-08-20 16:25 | orion | Assigned To | => burakkucat |
2016-08-21 01:32 | pperry | Category | kernel-ml => kernel-lt |
2016-08-21 12:41 | pperry | Note Added: 0004847 | |
2016-08-22 13:35 | burakkucat | Note Added: 0004852 | |
2016-08-22 13:54 | orion | Note Added: 0004853 | |
2016-08-22 16:05 | burakkucat | Note Added: 0004854 | |
2016-09-08 16:43 | burakkucat | Note Added: 0004860 | |
2016-09-08 16:43 | burakkucat | Status | assigned => resolved |
2016-09-08 16:43 | burakkucat | Resolution | open => fixed |