User`s guide
Core Kernel Functionality
2
1.1.3 Core Kernel Functionality
• To avoid binary incompatibility in applications that do not understand the 3.x versioning scheme, the
UNAME26 personality patch can be used to report the kernel version as 2.6.x where x is derived from the
real kernel version. The uname26 program is provided to activate the UNAME26 personality patch for 3.x
kernels. uname26 does not replace the uname command. Instead, it acts as a wrapper that modifies the
return value of the uname() system call to return a 2.6.x version number. If an application fails due to
the 3.8.x version number, you can use the following command to start it in a 2.6 context:
# uname26 application
The following example demonstrates the effect of using uname26 as a wrapper program:
# uname -r
3.8.13-16.el6uek.x86_64
# uname26 uname -r
2.6.48-16.el6uek.x86_64
The uname26 program is available in the uname26 package. (3.1)
• Structured logging in /dev/kmsg uses printk() to attach arbitrary key/value pairs to logged
messages, which carry machine-readable data that describes the context of the message when it
was created. The key/value pairs allow you to reliably identify messages according to device, driver,
subsystem, class, and type. The addition of a facility number to the syslog prefix allows continuation
records to be merged. (3.5)
• PCI Express runtime D3cold power state is supported. This deepest power saving state for PCIe devices
removes all main power. (3.6)
• Virtual Function I/O (VFIO) allows safe, non-privileged access to bare-metal devices from user-space
drivers by virtual machines that use direct device access (device assignment) to obtain high I/O
performance. From perspective of the device and the host, the VM appears as a user-space driver,
which provides the benefits of reduced latency, higher bandwidth, and the direct use of bare-metal
device drivers. This feature could potentially be used by high-performance computing and similar
applications. (3.6)
• Huge pages support a zero page as a performance optimization. This feature was previously available
only for normal sized pages (4 KB). When a process references a new memory page, the kernel assigns
a pointer to the zero page rather than allocating a real page of memory and filling this with zeroes. When
the process does attempt to write to the zero page, a write-protection fault is generated and the kernel
allocates a real page of memory to the process's address space. (3.8)
• A new foundation for the NUMA implementation will be used as the basis for future enhancements. (3.8)
• The memory control group now supports both stack and slab kernel usage parameters with the following
additional memory usage parameters (specified relative to memory.kmem):
failcnt Kernel memory usage hits (display only).
limit_in_bytes Kernel memory hard limit (set or display).
max_usage_in_bytes Maximum recorded kernel memory usage (display only).
usage_in_bytes Current kernel memory allocation (display only).
memory.kmem.limit_in_bytes is intended to help limit the effect of fork bombs. (3.8)
• Automatic balancing of memory allocation for NUMA nodes. (3.8)