1 New Features and Changes
The Unbreakable Enterprise Kernel Release 4 (UEK R4) is Oracle's fourth major release of its heavily tested and optimized operating system kernel for Oracle Linux 6 Update 7 or later, and Oracle Linux 7 Update 1 or later, on the x86-64 architecture. It is based on the mainline Linux kernel version 4.1.12.
UEK R4 update 5 uses the 4.1.12-103.3.8 version and build of the UEK R4 kernel, which includes security and bug fixes, as well as driver updates. This kernel has been tested within environments running the latest available Oracle Linux releases: Oracle Linux 6 Update 8, Oracle Linux 6 Update 9, Oracle Linux 7 Update 3, and Oracle Linux 7 Update 4.
Oracle actively monitors upstream check-ins and applies critical bug and security fixes to UEK R4.
UEK R4 uses the same versioning model as the mainline Linux kernel version. It is possible that some applications might not understand the 4.1 versioning scheme. However, regular Linux applications are usually neither aware of nor affected by Linux kernel version numbers.
Notable Changes
-
Intel E1000 drivers updated
This update includes a large number of patches to the Intel E1000 driver modules to support a wider range of devices, to implement performance enhancements and to resolve a number of bugs.
-
Intel
i40e
module updatedThis update includes a large number of upstream patches for the Intel
i40e
driver module to resolve a number of bugs and to bring this driver module into alignment with upstream functionality. -
nvme
module updatedThis update brings major changes to the
nvme
kernel module in the form of over a hundred upstream patches that ensure that the driver matches upstream functionality. Fixes were also included to better handle controller reset so that the request queue is properly frozen to prevent new requests from entering the queue. -
forcedeth
module addedThis update includes the addition of the popular open-source
forcedeth
kernel module that can be used as a driver for NVIDIA network interface cards. -
smartpqi
driver updatedThe Microsemi Smart Family Controller Driver (
smartpqi
) module has been updated for a large number of upstream patches. This driver enables next generation SCSI devices that implement the PQI queuing model, such as the Adaptec Series 9 controllers. The driver replaces theaacraid
driver for these devices. Patches have been applied to bring this version of the driver up to the most current level for compatibility with this kernel release. -
Support for IP packet duplication in
nf_tables
This update includes the addition of required modules to support packet duplication of IPv4 and IPv6 packets within
nf_tables
. This change provides support to clone packets to a given destination. -
Support for netlink for OFED
This update includes patches to the InfiniBand core code to add support for netlink from kernel to user space for the OpenFabrics Enterprise Distribution (OFED). Also included is a fix that makes the kernel OFED stack interrogate the InfiniBand address and route resolution service framework in user space to resolve path records via the netlink interface.
DTrace Improvements
A number of bug fixes and enhancements including module and utility updates are included for DTrace on UEK R4u5, bringing the current version to 0.6.1. Other notable changes include the following:
-
General bug fixes
Numerous bug fixes have been applied to provide greater stability and better performance.
-
Function Boundary Tracing (FBT) improvements
Fixes were applied to code for detecting whether a kernel function could be probed using FBT upon entry to make it less restrictive and to improve its ability to function on Oracle Linux 7 systems. A patch was also applied to code that handled passing the offset as an argument to FBT return probes to help ensure that FBT return probe arguments have the correct value.
-
I/O Providers
I/O provider coverage has been expanded to add probes for block file systems based on the common block layer. Additionally, probes have been added to support the tracing of I/O read and write performed on NFS. SDT probes for the TCP and UDP protocols have also been added. These include
tcp:::send
,tcp:::receive
,tcp:::state-change
,tcp:::connect-request
,tcp:::connect-refused
,tcp:::connect-established
,tcp:::accept-refused
,tcp:::accept-established
,udp:::send
andudp:::receive
. -
Automatic loading of DTrace Modules
DTrace kernel modules are automatically loaded for providers. This is achieved by pre-populating the
/etc/dtrace-modules
file with a list of default provider modules. This is implemented whendtrace-utils
is installed on the system. -
Improvements and fixes for CTF
Changes have been applied to add support for bitfields in
libdtrace-ctf
, including changes to dwarf2ctf to emit the correct CTF, where bitfields are represented. This change enables DTrace to see the values of bitfields within structures and unions. A fix was also applied so that the Kernel CTF could start to include kernel static variables. This change also introduces a module-scopevars_seen
hashtable into the deduplicator state, which identifies whether a variable is or is not static. Variables for which multiple static definitions exist are blacklisted, along with matching static and external variables that are declared for the same module, to avoid confusion over duplicate variable names.
Xen Hypervisor Improvements
This update includes several patches for Xen that are backported from changes in the Linux 4.9 and 4.10 kernel releases. Many of these patches improve performance, error handling and provide general bug fixes. Other notable fixes and improvements include the following:
-
A fix has been applied to the Xen blkfront driver to resolve a race condition that could cause I/O to hang when the ring buffer was full and the hardware queue was stopped.
-
A fix has been applied to the Xen blkback driver to update the xenstore node hotplug status to provide notification of a busy block device that cannot be detached because it is mounted inside a guest. This can prevent block-detach hangs when detaching a block device that is in use.
-
Performance enhancements were introduced in the Xen netback and netfront drivers to improve network throughput on chatty network activities that stress IRQ processing. This can enhance database performance in a virtual machine to more closely match the performance on bare metal. Other netback and netfront driver fixes were also applied to improve handling for network stress
-
An update of the Xen PCIfront driver is available, which supports vNUMA functionality so that a guest can mark specific PCI devices as belonging to NUMA nodes.
File System Improvements
The following improvements were implemented on the file systems supported by the current version of UEK:
- btrfs Updates
-
-
Patches were applied to support the ability to delete a device by specifying device ID. This feature enables functionality in the latest
btrfs-progs
package that is available for Oracle Linux 7 update 4 and later. -
Upstream patches were applied to better handle dedupe which was changing the
mtime
on files. This caused some applications, such asrsync
, to incorrectly assert that file contents had changed. The patch helps to ensure that dedupe is transparent to the user. -
A fix has been included for an issue that caused a crash when removing a file where
flush_space()
did not overwrite the return value for successful chunk allocation.
-
- XFS Updates
-
-
Upstream patches have been applied to provide for the ability to reconfigure XFS error handling. This includes changes to behavior on ENOSPC and error handling during unmount.
-
Upstream patches were applied to resolve a very rare issue that caused XFS to emit warning messages when under extremely high I/O load when available memory is limited.
-
Upstream patches were applied to resolve some XFS warning issues when clearing SUID and SGID bits and to better handle the removal of security labels.
-
- OCFS2 Updates
-
Various patches were applied to improve cluster locking and tracking of locks to prevent deadlocks.
Driver Updates
The Unbreakable Enterprise Kernel supports a wide range of hardware and devices. In close cooperation with hardware and storage vendors, several device drivers have been updated or added by Oracle, per the information in the following table.
Driver | Version | Description |
---|---|---|
|
1.2-1[41010]-ms + Patches |
Adaptec Advanced Raid Products |
|
11.4.0.0 + Patches |
Broadcom/Emulex OneConnect 10Gbps NIC Driver |
|
1.713.10 + Patches |
QLogic BCM57710/57711/57711E/57712/57712_MF/57800/57800_MF/57810/57810_MF/57840/57840_MF Driver |
|
1.7.0 + Upstream Patches |
Broadcom/Emulex BCM573xx NIC Driver |
|
7.3.21-k8-NAPI + Patches |
Intel(R) PRO/1000 Network Driver |
|
3.2.6-k + Patches |
Intel(R) PRO/1000 Network Driver |
|
1.6.0.34 |
Cisco FCoE HBA Driver |
|
Upstream patches |
Reverse Engineered nForce ethernet driver |
|
2.1.7-k |
Intel® Ethernet Connection XL710 Network Driver |
|
2.1.7-k |
Intel® XL710 X710 Virtual Function Network Driver |
|
5.4.0-k |
Intel® Gigabit Ethernet Network Driver |
|
2.4.0-k |
Intel® Gigabit Virtual Function Driver |
|
5.0.0-k |
Intel® 10 Gigabit PCI Express Network Driver |
|
3.2.2-k + Upstream Patches |
Intel® 82599 Virtual Function Driver |
|
11.4.0.2 |
Broadcom/Emulex LightPulse Fibre Channel SCSI Driver |
|
07.701.17.00-rc1 |
Avago MegaRAID SAS Driver |
|
Upstream Patches |
Matrox GP200e4 Device Driver |
|
15.100.00.00 |
LSI MPT Fusion SAS 3.0 Device Driver |
|
1.0 + Upstream Patches |
IPv4/IPv6 packet duplication support for nf_tables |
|
1.0 + Patches |
NVM Express (NVMe) Core Driver |
|
8.10.10.21 |
QLogic FastLinQ 4xxxx Ethernet Driver and Core Module |
|
1.0.4-100 |
Microsemi Smart Family Controller Driver |
|
Upstream Patches and Bug Fixes |
Xen Virtual Block Device and Xen Virtual Network Device drivers |
|
6.0.r8044 |
Xsigo Oracle Virtual Network Core Driver |
|
6.0.r8044 |
Xsigo Oracle Virtual Network VHBA Driver |
|
6.0.r8044 |
Xsigo Oracle Virtual Network XSVNIC Network Driver |
|
6.0.r8044 |
Xsigo Oracle Virtual Network Virtual Ethernet Driver |
Some InfiniBand drivers are patched with bug fixes and minor enhancements in this release.
Additional Notes For Driver Updates
The following notes are included at the request of a vendor for the listed driver:
-
lpfc
: Locked optics support is enabled for LPE32000 HBAs and all variant HBAs of this architecture. With this capability, these HBAs will detect and enable both Avago or Emulex certified SFP and QSFP optics.For driver rev 11.0.0.13 and higher unqualified optics will be disabled, the link will not come up, an error message is written to the log file and the lpfc driver will display this message:
3176 Port Name [wwpn] Unqualified optics - Replace with Avago optics for Warranty and Technical support
-
mpt3sas
: As of UEK R4 update 4, thempt2sas
driver has been merged with thempt3sas
driver to provide a single driver module that supports both SAS 2.0 and SAS 3.0 HBAs. Changes have been applied todracut
to correctly handle the module aliases for the migration to a single driver module.
Technology Preview
The following features that are included in the Unbreakable Enterprise Kernel Release 4 are still under development, but are made available for testing and evaluation purposes:
-
DCTCP (Data Center TCP)
DCTCP enhances congestion control by making use of the Explicit Congestion Notification (ECN) feature of state-of-the-art network switches. DCTCP reduces buffer occupancy and improves throughput by allowing a system to react more intelligently to congestion than is possible using TCP.
-
DRBD (Distributed Replicated Block Device)
A shared-nothing, synchronously replicated block device (RAID1 over network), designed to serve as a building block for high availability (HA) clusters. It requires a cluster manager (for example, pacemaker) for automatic failover.
-
Kernel module signing facility
Applies cryptographic signature checking to modules on module load, checking the signature against a ring of public keys compiled into the kernel. GPG is used to do the cryptographic work and determines the format of the signature and key data.
-
NFS over RDMA interoperation with ZFS and Oracle Solaris
NFS over RDMA does not yet fully interoperate with ZFS and Oracle Solaris. NFS over RDMA for NFS versions 3 and 4 is supported for Oracle Linux systems using the Oracle InfiniBand stack and is more efficient than using NFS with TCP over IPoIB. Currently, only the Mellanox® ConnectX-2 and ConnectX-3 Host Channel Adapters (HCAs) pass the full Connectathon NFS test suite and are supported.
-
Server-side parallel NFS
Server-side parallel NFS (pNFS) improves the scalability and performance of an NFS server by making file metadata and data available on separate paths.
Compatibility
Oracle Linux maintains user-space compatibility with Red Hat Enterprise Linux (RHEL), which is independent of the kernel version running underneath the operating system. Existing applications in user space will continue to run unmodified on the Unbreakable Enterprise Kernel Release 4 and no re-certifications are needed for RHEL certified applications.
To minimize impact on interoperability during releases, the Oracle Linux team works closely with third-party vendors whose hardware and software have dependencies on kernel modules. The kernel ABI for UEK R4 will remain unchanged in all subsequent updates to the initial release. In this release, there are changes to the kernel ABI relative to UEK R3 that require recompilation of third-party kernel modules on the system. Before installing UEK R4, verify its support status with your application vendor.
Header Packages for Development
As of UEK-3.8-QU2, the kernel-uek-headers
package is no longer built and distributed. There are three
kernel packages that might be useful for development purposes.
The kernel-headers
package forms part of the
API for user space programs. The kernel-devel
package is used for standard RHCK development and module
compilation. The kernel-uek-devel
package is
used for UEK development and module compilation. Neither the
kernel-uek-headers
, nor the
kernel-headers
packages, are needed for
kernel development.
The kernel-headers
package provides the C
header files that specify the interface between user-space
binaries or libraries and UEK or RHCK. These header files define
the structures and constants that you need to build most
standard programs or to rebuild the glibc
package.
The kernel-devel
and
kernel-uek-devel
packages provide the kernel
headers and makefiles that you need to build modules against UEK
and RHCK.
To install the packages required to build modules against UEK and the C header files for both UEK and RHCK:
# yum install kernel-uek-devel-`uname -r` kernel-headers