Chapter 3. Kernel

The kernel shipped in Red Hat Enterprise Linux 6.2 includes several hundred bug fixes for, and enhancements to, the Linux kernel. For details concerning every bug fixed and every enhancement added to the kernel for this release, refer to the kernel section of the Red Hat Enterprise Linux 6.2 Technical Notes.
Using open-iscsi to manage the qla4xxx discovery and login process
Prior to Red Hat Enterprise Linux 6.2, the qla4xxx adapter firmware managed discovery and login to iSCSI targets. A new feature in Red Hat Enterprise Linux 6.2 allows you to use open-iscsi to manage the qla4xxx discovery and login process. This can result in a more uniform management process.
This new feature is enabled by default. The qla4xxx iSCSI firmware settings are accessible via:
~]# iscsiadm -m fw
This feature may be disabled by setting the module ql4xdisablesysfsboot=1 parameter as follows:
  1. Set the parameter in the /etc/modprobe.d file:
    ~]# echo "options qla4xxx ql4xdisablesysfsboot=1" >> /etc/modprobe.d/qla4xxx.conf
  2. Reload the qla4xxx module either by executing the following set of commands:
    ~]# rmmod qla4xxx
    ~]# modprobe qla4xxx
    or, if you are booted off the qla4xxx device, by rebooting your system.
When booted off a qla4xxx device, upgrading from Red Hat Enterprise Linux 6.1 to Red Hat Enterprise Linux 6.2 will cause the system to fail to boot up with the new kernel. For more information on this known issue, refer to the Technical Notes.
kexec kdump support on additional file systems
Kdump (a kexec-based crash dumping mechanism) now supports dumping of the core on the following file systems on Red Hat Enterprise Linux 6:
  • Btrfs (Note that this file system is a Technology Preview)
  • ext4
  • XFS (Note that XFS is a layer product and must be installed to enable this feature)
pkgtemp merged with coretemp
The pkgtemp module has been merged with the coretemp module. The pkgtemp module is now deprecated. The coretemp module now supports all the features it previously did plus the features that were supported by the pkgtemp module.
The coretemp previously only provided per core temperatures, while the pkgtemp module provided the temperatures of the CPU package. In Red Hat Enterprise Linux 6.2, the coretemp module allows you to read the temperatures of the cores, the uncore, and the package.
It is advisable to adjust any scripts using either of these modules.
Lockless dispatching of SCSI driver queuecommand functions
In Red Hat Enterprise Linux 6.2, the SCSI midlayer supports optional lockless dispatching of SCSI driver queuecommand functions.
This is a backport of the upstream SCSI lock pushdown commit. The backport retains binary compatibility with Red Hat Enterprise Linux 6.0 and Red Hat Enterprise Linux 6.1. Retaining binary compatibility requires divergence from the equivalent upstream SCSI lock pushdown mechanism.
A previously unused flag in the scsi_host_template structure is used by SCSI drivers to indicate to the SCSI midlayer that driver queuecommand will be dispatched without the SCSI host bus lock held.
The default behavior is that the Scsi_Host lock will be held during a driver queuecommand dispatch. Setting the scsi_host_template lockless bit prior to scsi_host_alloc will cause the driver queuecommand function to be dispatched without the Scsi_Host lock being held. In such a case, the responsibility for any lock protection required is pushed down into the driver queuecommand code path.
SCSI Drivers updated to use lockless queuecommand in Red Hat Enterprise Linux 6.2 are listed below:
  • iscsi_iser
  • be2iscsi
  • bnx2fc
  • bnx2i
  • cxgb3i
  • cxgb4i
  • fcoe (software fcoe)
  • qla2xxx
  • qla4xxx
Support for Fiber Channel over Ethernet (FCoE) target mode
Red Hat Enterprise Linux 6.2 includes support for Fiber Channel over Ethernet (FCoE) target mode, as a Technology Preview. This kernel feature is configurable via targetadmin, supplied by the fcoe-target-utils package. FCoE is designed to be used on a network supporting Data Center Bridging (DCB). Further details are available in the dcbtool(8) and targetadmin(8) man pages.

Important

This feature uses the new SCSI target layer, which falls under this Technology Preview, and should not be used independently from the FCoE target support. This package contains the AGPL license.
Support for the crashkernel=auto boot parameter
In Red Hat Enterprise Linux 6.1, with BZ#605786, the crashkernel=auto boot parameter was deprecated. However, in Red Hat Enterprise Linux 6.2, support for crashkernel=auto is continued on all Red Hat Enterprise Linux 6 systems.
Support for MD RAID in user space
The mdadm and mdmon utilities have been updated to support Array Auto-Rebuild, RAID Level Migrations, RAID 5 support limitation, and SAS-SATA drive roaming.
Flush request merge
Red Hat Enterprise Linux 6.2 supports merging of flush requests to assist devices which are slow to perform a flush.
UV2 Hub Support
Red Hat Enterprise Linux 6.2 adds UV2 Hub support. UV2 is the UVhub chip that is the successor to the current UV1 hub chip. UV2 uses the HARP hub chip that is currently in development. UV2 provides support for new Intel sockets. It provides new features to improve performance. UV2 is being designed to support 64 TB of memory in a Single System Image (SSI). Additionally, the node controller MMRs have been updated for UV systems.
acpi_rsdp boot parameter
Red Hat Enterprise Linux 6.2 introduces the acpi_rsdp boot parameter for kdump to pass an ACPI RSDP address, so that the kdump kernel can boot without Extensible Firmware Interface (EFI).
QETH driver improvements
The following enhancements have been added to the QETH network device driver:
  • Support for af_iucv HiperSockets transport
  • Support for forced signal adapter indications
  • Support for asynchronous delivery of storage blocks
  • New Ethernet Protocol ID added to the if_ether module
CPACF algorithms
Support for the new CPACF (CP Assist for Cryptographic Function) algorithms, supported by IBM zEnterprise 196, has been added. The new hardware accelerated algorithms are:
  • CTR mode for AES
  • CTR mode for DES and 3DES
  • XTS mode for AES with key lengths of 128 and 256 bits
  • GHASH message digest for GCM mode
Red Hat Enterprise Linux 6.2 supports conditional resource-reallocation through the pci=realloc kernel parameter. This feature provides an interim solution for adding a dynamically reallocatable PCI resource without causing any regressions. It disables dynamic reallocation by default, but adds the ability to enable it through the pci=realloc kernel command line parameter.
PCI improvements
Dynamic reallocation is disabled by default. It can be enabled with the pci=realloc kernel command line parameter. In addition, bridge resources have been updated to provide larger ranges in the PCI assign unassigned call.
SMEP
Red Hat Enterprise Linux 6.2 enables SMEP (Supervision Mode Execution Protection) in the kernel. SMEP provides an enforcement mechanism, allowing the system to set a requirement that is not intended to be executed from user pages while in the supervisor mode. This requirement is then enforced by the CPU. This feature is able to prevent all attacks, irrespective of the vulnerability in the system code, that are executed from user mode pages while the CPU is in the supervisor mode.
Enhanced fast string instructions
Support for enhanced fast string REP MOVSB/STORESB instructions for the latest Intel platform has been added.
USB 3.0 xHCI
The USB 3.0 xHCI host side driver has been updated to add split-hub support, allowing the xHCI host controller to act as an external USB 3.0 hub by registering a USB 3.0 roothub and a USB 2.0 roothub.
ACPI, APEI, and EINJ parameter support
The ACPI, APEI, and EINJ parameter support is now disabled by default.
pstore
Red Hat Enterprise Linux 6.2 adds support for pstore—a file system interface for platform dependent persistent storage.
PCIe AER error information printing
Support for printk based APEI (ACPI Platform Error Interface) hardware error reporting has been added, providing a way to unify errors from various sources and send them to the system console.
ioatdma driver
The ioatdma driver (dma engine driver) has been updated to support Intel processors with a dma engine.
8250 PCI serial driver
Support for the Digi/IBM PCIe 2-port Async EIA-232 Adapter has been added to the 8250 PCI serial driver. Additionally, EEH (Enhanced Error Handling) support for the Digi/IBM PCIe 2-port Async EIA-232 Adapter has been added to the 8250 PCI serial driver.
ARI support
ARI (Alternative Routing- ID Interpretation) support, a PCIe v2 feature, has been to Red Hat Enterprise Linux 6.2.
PCIe OBFF
PCIe OBFF (Optimized Buffer Flush/Fill) enable/disable support has been added for Intel's latest platform. OBFF provides devices with information on interrupts and memory activity and their potentially reduced power impact, ultimately improving energy efficiency.
Capture oops/panic reports to NVRAM
In Red Hat Enterprise Linux 6.2, the kernel is enabled to capture kernel oops/panic reports from the dmesg buffer into NVRAM on PowerPC architectures.
MXM driver
The MXM driver, responsible for handling graphics switching on NVIDIA platforms, has been backported to Red Hat Enterprise Linux 6.2.
Page coalescing
Red Hat Enterprise Linux 6.2 introduces page coalescing, a feature on IBM Power servers which allows for coalescing identical pages between logical partitions.
L3 cache partitioning
Support for L3 Cache Partitioning has been added to the latest AMD family CPUs.
thinkpad_acpi module
The thinkpad_acpi module has been updated to add support for new ThinkPad models.
C-State support
Latest Intel processor C-State support has been added to intel_idle.
IOMMU warnings
Red Hat Enterprise Linux 6.2 now displays warnings for IOMMU (Input/Output Memory Management Unit) on AMD systems.
Logging to dmesg during boot
Logging of board, system, and BIOS information to dmesg during boot has been added.
IBM PowerPC support
cputable entries have been added to the kernel, providing support for the latest IBM PowerPC processor family.
VPHN
The VPHN (Virtual Processor Home Node) feature has been disabled on IBM System p.
Driver support for latest Intel chipset
The following drivers now support the latest Intel chipset:
  • i2c-i801 SMBus driver
  • ahci AHCI-mode SATA
  • ata_piix IDE-mode SATA driver
  • TCO Watchdog driver
  • LPC Controller driver
exec-shield
On IBM PowerPC systems, the exec-shield value in sysctl or in the /proc/sys/kernel/exec-shield parameter is no longer enforced.
kdump on PPC64
Additional checks and fixes have been added to support kdump on 64-bit PowerPC and 64-bit IBM POWER Series systems.
UV MMTIMER module
The UV MMTIMER module (uv_mmtimer) has been enabled on SGI platforms. The uv_mmtimer module allows direct userland access to the UV system's real time clock which is synchronized across all hubs.
IB700 module
Support for the IB700 module has been added in Red Hat Enterprise Linux 6.2
Override PCIe AER Mask Registers
The aer_mask_override module parameter has been added, providing a way to override the corrected or uncorrected masks for a PCI device. The mask will have the bit corresponding to the status passed into the aer_inject() function.
USB 3.0 host controller support on PPC64
USB 3.0 host controller support has been added to 64-bit PowerPC and 64-bit IBM POWER Series systems.
Out-of-Memory (OOM) killer improvements
An improved upstream Out-of-Memory (OOM) killer implementation has been backported to Red Hat Enterprise Linux 6.2. The improvements include:
  • Processes which are about to exit are preferred by the OOM killer.
  • The OOM kill process also kills the children of the selected processes.
  • A heuristic has been added to kill the forkbomb processes.
The oom_score_adj /proc tunable parameter adds the value stored in each process's oom_score_adj variable, which can be adjusted via /proc. This allows for an adjustment of each process's attractiveness to the OOM killer in user space; setting it to -1000 will disable OOM kills entirely, while setting it to +1000 marks this process as OOM's primary kill target.
For more information on the new implementation, refer to http://lwn.net/Articles/391222/ .
zram driver
Red Hat Enterprise Linux 6.2 provides an updated zram driver (creates generic RAM based compressed block devices).
taskstat utility
In Red Hat Enterprise Linux 6.2, the taskstat utility in the kernel, which prints the status of ASET tasks, has been enhanced by providing microsecond CPU time resolution for the top utility to use.
perf utility
Red Hat Enterprise Linux 6.2 updates the perf utility to upstream version 3.1 along with the kernel upgrade to v 3.1. Refer to BZ#725524 for newly supported kernel features provided by the perf utility. The updated version of the perf utility includes:
  • Added cgroup support
  • Added handling of /proc/sys/kernel/kptr_restrict
  • Added more cache-miss percentage printouts
  • Added the -d -d and -d -d -d options to show more CPU events
  • Added the --sync/-S option
  • Added support for the PERF_TYPE_RAW parameter
  • Added more documentation about the -f/--fields option
  • The python-perf package has been added for python binding support.
OProfile support
Red Hat Enterprise Linux 6.2 adds OProfile support for the latest Intel processors.
IRQ counting
The number of interrupt requests (IRQ) is now counted in a sum of all irq counter, reducing the cost of the look-up in the /proc/stat file.
Scheduling improvement
Red Hat Enterprise Linux 6.2 introduces a scheduling improvement where a hint is provided to the scheduler on the next buddy hint on sleep and preempt path. This hint enhancement helps the workload of multiple tasks in multiple task groups.
Transparent Huge Page improvement
In Red Hat Enterprise Linux 6.2, Transparent Huge Pages are now supported in several places by the kernel:
  • The system calls of mremap, mincore, and mprotect
  • /proc tunable parameters: /proc/<pid>/smaps and /proc/vmstat
Additionally, Transparent Huge Pages add some compaction improvements.
XTS AES256 self-tests
Red Hat Enterprise Linux 6.2 adds XTS (XEX-based Tweaked CodeBook) AES256 self-tests to meet the FIPS-140 requirements.
SELinux netfilter packet drops
Previously, the SELinux netfilter hooks returned NF_DROP if they dropped a packet. In Red Hat Enterprise Linux 6.2, a drop in the netfilter hooks is signaled as a permanent fatal error and is not transient. By doing this, the error is passed back up the stack, and in some situations applications will get a faster indication that something went wrong.
LSM hook
In Red Hat Enterprise Linux 6.2, the remount mount options (mount -o remount) are passed to a new LSM hook.
Default mode for UEFI systems
Red Hat Enterprise Linux 6.0 and 6.1 defaulted to running UEFI systems in a physical addressing mode. Red Hat Enterprise Linux 6.2 defaults to running UEFI systems in a virtual addressing mode. The previous behavior may be obtained by passing the physefi kernel parameter.
Default method for kdumping over SSH
In Red Hat Enterprise Linux 6, the default core_collector method for kdumping the core over SSH has been changed from scp to makedumpfile, which helps shrink the size of the core file when copying over the network link, resulting in faster copying.
If you require the old vmcore full size core file, specify the following in the /etc/kdump.conf file:
core_collector /usr/bin/scp