Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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)