Chapter 30. Kernel
A fix of PT_NOTE entries that were previously corrupted during crashdump
On some HP servers, a kernel crash could lead to the corruption of PT_NOTE entries because of a kernel code defect. As a consequence, the kernel crash dump utility failed to initialize. The provided patch aligns the allocation of PT_NOTE entries so that they are inside one physical page, and thus written and read data is identical. As a result, kernel crash dump now works as expected in the described situation. (BZ#1073651)
Removal of the slub_debug
parameter to save memory
The
slub_debug
parameter enables debugging of the SLUB allocator, which makes each object consume extra memory. If the slub_debug
kernel parameter was used, not enough memory was allocated to the kdump
capture kernel by the automatic setting on 128 GB systems. Consequently, various tasks from the kdump
init script terminated with an Out Of Memory (OOM) error message and no crash dump was saved. The provided patch removes the slub_debug
parameter, and crash dump is now saved as expected in the aforementioned scenario. (BZ#1180246)
Removal of a race condition causing a deadlock when a new CPU was attached
Previously, when a new CPU was attached, a race condition between the CPU hotplug and the stop_two_cpus() function could occur causing a deadlock if that migration thread on the new CPU was already marked as
active
but not enabled
. A set of patches has been applied which removes this race condition. As a result, systems with attached new CPUs now run as intended. (BZ#1252281)
Update of the kernel with hugepage migration patches from the upstream
Previously, several types of bugs including the kernel panic could occur with the hugepage migration. A set of patches from the upstream has been backported which fix these bugs. The updated kernel is now more stable and hugepage migration is automatically disabled in architectures other than AMD64 and Intel 64. (BZ#1287322)
Booting kernel with UEFI and the secure boot enabled
When the Unified Extensible Firmware Interface (UEFI) was used and the secure boot was enabled, the operating system failed to boot for all kernels since the 3.10.0-327.3.1.el7.x86_64 kernel. With the update to the 3.10.0-327.4.4.el7 kernel and newer versions the system boots up as expected. (BZ#1290441)
New microcode added into initramfs images for all installed kernels
Previously, when the microcode_ctl package was installed, the postinstall scriptlet rebuilt the initramfs file only for the running kernel and not for any other installed kernels. Consequently, when the build completed, there was an initramfs file for a kernel that was not even installed. The provided fix adds new microcode into initramfs images for all installed kernels. As a result, the superfluous initramfs file is no longer generated. (BZ#1292158)
kernel slab
errors caused by a race condition in GFS2 no longer occur
A race condition previously occurred in the GFS2 file system in which two processes simultaneously tried to free kernel
slab
memory used for directory lookup. As a consequence, when both processes freed the same memory, a slab
memory error occurred in the kernel. The GFS2 file system has been patched to eliminate the race condition, and a process now cannot try to free the memory that has already been freed by another process. Now, each process is forced to take turns when trying to free the memory. As a result, kernel slab
errors no longer occur. (BZ#1276477)
GFS2 now writes data to the correct location within the file
Previously, the GFS2 file system miscalculated the starting offset when writing files opened with
O_DIRECT
(Direct I/O) at a location larger than 4 KB. As a consequence, the data was written to an incorrect location in the file. GFS2 has been patched to calculate the correct file offset for Direct I/O writes. As a result, GFS2 now writes data to the correct location within the file. (BZ#1289630)
Dump-capture kernel memory freed when kdump mechanism fails
When crashkernel memory was allocated using the
,high
and ,low
syntax, there were cases where the reservation of the high portion succeeded but with the reservation of the low portion the kdump mechanism failed. This failure could occur especially on large systems for several reasons. The manually specified crashkernel low memory was too large and thus an adequate memblock region was not found. The kexec utility could load the dump-capture kernel successfully, but booting the dump-capture kernel failed, as there was no low memory. The provided patch set reserves low memory for the dump-capture kernel after
the high memory portion has been allocated. As a result, the dump-capture kernel memory is freed if the kdump mechanism fails. The user thus has a chance to take measures accordingly. (BZ#1241236)
The ksc
utility no longer fails to file bugs due to the unavailable kabi-whitelists component
In an earlier update, the
kabi-whitelists
component was changed to the kabi-whitelists
sub-component of the kernel component. Consequently, the ksc utility was not able to file bugs, as the kabi-whitelists
component value was not active, and the following error message was generated:
Could not create bug.<Fault 32000:"The component value 'kabi-whitelists' is not active">
With this update, the correct sub-component of the kernel component is kabi-whitelisted, and ksc files bugs as expected. (BZ#1328384)
ksc
now returns an error instead of crashing when running without mandatory arguments
Previously, the
ksc
tool terminated unexpectedly when running without the mandatory arguments. With this update, ksc
returns an error message and exits gracefully in the described situation. (BZ#1272348)
ext4 file systems can now be resized as expected
Due to a bug in the ext4 code, it was previously impossible to resize ext4 file systems that had 1 kilobyte block size and were smaller than 32 megabytes. A patch has been applied to fix this bug, and the described ext4 file systems can now be resized as expected. (BZ#1172496)
Unexpected behavior when attaching a qdisc to a virtual device no longer occurs
Previously, attaching a qdisc to a virtual device could result in unexpected behavior such as packets being dropped prematurely and reduced bandwidth. With this update, virtual devices have a default
tx_queue_len
of 1000 and are represented by a device flag. Attaching a qdisc to a virtual device is now supported with default settings and any special handling of the tx_queue_len=0
is no longer needed. (BZ#1152231)
The udev
daemon is no longer stopped by dracut
Previously, a dracut script in the
initramfs
process stopped the udev
daemon by using the udevadm control
command, which caused the udev
daemon to exit. However, the systemd
service policy is to restart the daemon. Under certain circumstances, this prevented the system from booting. With this update, the code to stop the udev
daemon has been removed from the dracut script, which avoids the described problem. (BZ#1276983)
multi-fsb buffer logging has been fixed
Previously, directory modifications on XFS filesystems with large directory block sizes could lead to a kernel panic and consequent server crash due to the problems with logging the multi-block buffers. The provided patch fixes the multi-fsb buffer logging, and the servers no longer crash in this scenario. (BZ#1356009)
Hard screen lock-up no longer occurs on laptops using integrated graphics in the 6th Generation Intel Core processors
On laptops using integrated graphics in the 6th Generation Intel Core processors, hard screen lock-up previously sometimes occurred when:
- Moving the cursor between the edges of the monitor
- Moving the cursor between multiple monitors
- Changing any aspect of the monitor configuration
- Docking or undocking the machine
- Plugging or unplugging a monitor
The bug has been fixed, and the hard lock-up of the screen no longer occurs in these situations. (BZ#1341633)
Multiple problems fixed on systems with persistent memory
Several problems sometimes occurred during boot on systems with persistent memory, either real Non-Volatile Dual In-line Memory Modules (NVDIMMs) or emulated NVDIMMs using the
memmap=X!Y
kernel command-line parameter.
The onlining of persistent memory caused the following messages to be displayed for every block (128 MB) of
pmem
devices:
Built 2 zonelists in Zone order, mobility grouping on. Total pages: 8126731 Policy zone: Normal
The system became unresponsive.
The following
BUG
message was displayed:
BUG: unable to handle kernel paging request at ffff88007b7eef70
This update fixes the described bugs. (BZ#1367257)
python
errors no longer appear when SUDO_USER
and USER
variables are not set
Previously, when executing in spare environments that do not have
SUDO_USER
or USER
environment variables set, a number of python
errors appeared. With this update, undefined SUDO_USER
and USER
variables are handled correctly, and the errors no longer appear. (BZ#1312057)
CIFS anonymous authentication no longer fails
Previously, the
cifs
module set values incorrectly for anonymous authentication. Changes made to the samba
file server exposed this bug. As a consequence, anonymous authentication failed. This update changes the behavior of the client and sets the correct auth
values for anonymous authentication. As a result, CIFS anonymous authentication now works correctly. (BZ#1361407)