Chapter 7. Kernel
Kernel dumps are now reliably generated under high memory load
Previously, if a kernel panic occurred under high memory load, a deadlock in some cases occurred and a kernel dump was not generated. This update fixes the
vmalloc_sync_all()
function to avoid waiting on a spinlock that may be never released. As a result, the kernel dump is collected correctly. (BZ#1146727)
Runqueues no longer ignore clock updates
Previously, runqueues on systems with overcommitment of CPUs were prone to ignoring clock updates for extended periods of time. As a consequence, the real-time runqueues were limited, which prevented critical tasks and their dependant tasks from running. This update ensures that the runqueues do not ignore clock updates for extended periods of time. As a result, critical tasks and their dependant tasks are able to run in such situations. (BZ#1212959)
dma_pin_iovec_pages() no longer causes the system out of memory
Previously, when the dma_pin_iovec_pages() function requested a large amount of memory but the request failed, it was unable to release the memory that was reserved. As a consequence, the system run out of memory. With this update, dma_pin_iovec_pages() now allocates the full amount of memory correctly and releases the memory when it is not needed. As a result, the described problem no longer occurs. (BZ#1459263)
A cgroups
deadlock has been fixed
In certain circumstances when using
cgroups
, a system deadlock occurred due to a race condition. This update adds a work queue that fixes the race condition, which prevents the deadlock from happening. (BZ#1463754)
Audit of unsuccessful execve()
now works properly
Previously, the audit call in the Linux kernel used the arguments of its parent process when logging arguments of an unsuccessful
execve()
system call. As a consequence, audit was able to use pointers to non-mapped addresses, and the process terminated with a segmentation fault. With this update, audit has been fixed to reinstate the check for the failed execve()
. As a result, processes no longer terminate erroneously after unsuccessful execve()
. (BZ#1488822)
vmcp
now successfuly executes cp
Previously, the kernel memory allocation using the
GFP_DMA
flag caused the vmcp
command to fail to execute the cp
command. This update removes the need to use GFP_DMA
and allows the GFP_KERNEL
flag to allocate the kernel memory instead. As a result, vmcp
succeeds to execute cp
. (BZ#1496105)