12. Kernel

12.1. Resource Control

12.1.1. Control Groups

Control groups are a new feature of the Linux kernel in Red Hat Enterprise Linux 6. Each control group is a set of tasks on a system that have been grouped together to better manage their interaction with system hardware. Control groups can be tracked to monitor the system resources that they use. Additionally, system administrators can use control group infrastructure to allow or to deny specific control groups access to system resources such as memory, CPUs (or groups of CPUs), networking, I/O, or the scheduler. Management of control groups in userspace is provided by libcgroup, enabling system administrators to create new control groups, start new processes in a specific control group and set control group parameters.


Control Groups and other resource management features are discussed in detail in the Red Hat Enterprise Linux 6 Resource Management Guide

12.2. Scalability

12.2.1. Completely Fair Scheduler (CFS)

A process (or task) scheduler is a specific kernel subsystem that is responsible for assigning the order in which processes are sent to the CPU. The kernel (version 2.6.32) shipped in Red Hat Enterprise Linux 6 replaces the O(1) scheduler with the new Completely Fair Scheduler (CFS). The CFS implements the fair queuing scheduling algorithm.

12.2.2. Virtual Memory Pageout Scalability

Implemented by the kernel, virtual memory presents applications with a single, contiguous block of memory addresses. The reality underlying this presentation is complex, with actual physical addresses commonly fragmented and even paged out to much slower devices such as fixed disks. The virtual memory addresses are organized by the kernel into standard units called pages. The kernel in Red Hat Enterprise Linux 6 features enhanced management of virtual memory pages, reducing the processing load required on systems with large amounts of physical memory.

12.3. Error Reporting

12.3.1. Advanced Error Reporting (AER)

The kernel in Red Hat Enterprise Linux 6 features Advanced Error Reporting (AER). AER is a new kernel feature that provides enhanced error reporting for PCI-Express devices.

12.3.2. Kdump Auto Enablement

Kdump is now enabled by default on systems with large amounts of memory. Specifically, kdump is enabled by default on:
  • systems with more than 4GB of memory on architectures with a 4KB page size (i.e. x86 or x86_64), or
  • systems with more than 8GB of memory on architectures with larger than a 4KB page size (i.e PPC64).

12.4. Power Management

12.4.1. Aggressive Link Power Management (ALPM)

The kernel in Red Hat Enterprise Linux 6 features support for Aggressive Link Power Management (ALPM). ALPM is a power-saving technique that helps the disk save power by setting a SATA link to the disk to a low-power setting during idle time (i.e. when there is no I/O). ALPM automatically sets the SATA link back to an active power state once I/O requests are queued to that link.

12.4.2. Tickless Kernel

Previously the kernel implemented a timer that periodically queried the system to check if there were any outstanding tasks to process. Consequently, the CPU would remain in an active state, consuming unnecessary power. The kernel in Red Hat Enterprise Linux 6 enables the new tickless kernel feature, replacing the periodic timer interrupts with on-demand interrupts. The tickless kernel allows a CPU to enter longer sleep states when idle, and wake only when a task is queued for processing.

12.5. Analyzing Kernel Performance

12.5.1. Performance Counter for Linux (PCL)

The Linux Performance Counter infrastructure provides an abstraction of performance counter hardware capabilities, such as instructions executed, cache misses, and branches mis-predicted. PCL provides per-task and per-CPU counters, and adds event capabilities on top of these counters. Performance counter information can be used to profile kernel functions and events, and assist in the analysis of kernel performance issues.

12.5.2. Ftrace and perf

Two new tools are available in Red Hat Enterprise Linux 6 to assist in analyzing kernel performance. Ftrace provides call graph style tracing for the kernel. The new perf tool monitors, logs and analyzes system hardware events.

12.6. General Kernel Updates

12.6.1. Physical Address Extension (PAE)

The Physical Address Extension (PAE) is a feature implemented in modern x86 processors. PAE extends memory addressing capabilities, allowing more than 4 gigabytes (GB) of random access memory (RAM) to be used. The default kernel shipped with the x86 architecture version of Red Hat Enterprise Linux 6 is PAE enabled. A PAE enabled processor is a minimum requirement for the x86 variant of Red Hat Enterprise Linux 6.

12.6.2. Loadable Firmware Files

Firmware files for which there is no appropriately licensed source code have been removed from the Red Hat Enterprise Linux 6 kernel. Modules that require loadable firmware now use a kernel interface to request firmware from userspace.