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 updated

    This 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 updated

    This 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 added

    This 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 updated

    The 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 the aacraid 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 and udp:::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 when dtrace-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-scope vars_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 as rsync, 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

aacraid

1.2-1[41010]-ms + Patches

Adaptec Advanced Raid Products

be2net

11.4.0.0 + Patches

Broadcom/Emulex OneConnect 10Gbps NIC Driver

bnx2x

1.713.10 + Patches

QLogic BCM57710/57711/57711E/57712/57712_MF/57800/57800_MF/57810/57810_MF/57840/57840_MF Driver

bnxt_en

1.7.0 + Upstream Patches

Broadcom/Emulex BCM573xx NIC Driver

e1000

7.3.21-k8-NAPI + Patches

Intel(R) PRO/1000 Network Driver

e1000e

3.2.6-k + Patches

Intel(R) PRO/1000 Network Driver

fnic

1.6.0.34

Cisco FCoE HBA Driver

forcedeth

Upstream patches

Reverse Engineered nForce ethernet driver

i40e

2.1.7-k

Intel® Ethernet Connection XL710 Network Driver

i40evf

2.1.7-k

Intel® XL710 X710 Virtual Function Network Driver

igb

5.4.0-k

Intel® Gigabit Ethernet Network Driver

igbvf

2.4.0-k

Intel® Gigabit Virtual Function Driver

ixgbe

5.0.0-k

Intel® 10 Gigabit PCI Express Network Driver

ixgbevf

3.2.2-k + Upstream Patches

Intel® 82599 Virtual Function Driver

lpfc

11.4.0.2

Broadcom/Emulex LightPulse Fibre Channel SCSI Driver

megaraid_sas

07.701.17.00-rc1

Avago MegaRAID SAS Driver

mgag200

Upstream Patches

Matrox GP200e4 Device Driver

mpt3sas

15.100.00.00

LSI MPT Fusion SAS 3.0 Device Driver

nf_dup_ipv4

nf_dup_ipv6

nft_dup_ipv4

nft_dup_ipv6

1.0 + Upstream Patches

IPv4/IPv6 packet duplication support for nf_tables

nvme-core

1.0 + Patches

NVM Express (NVMe) Core Driver

qed

qede

8.10.10.21

QLogic FastLinQ 4xxxx Ethernet Driver and Core Module

smartpqi

1.0.4-100

Microsemi Smart Family Controller Driver

xen-blkback

xen-blkfront

xen-netback

xen-netfront

xen-pcifront

Upstream Patches and Bug Fixes

Xen Virtual Block Device and Xen Virtual Network Device drivers

xscore

6.0.r8044

Xsigo Oracle Virtual Network Core Driver

xsvhba

6.0.r8044

Xsigo Oracle Virtual Network VHBA Driver

xsvnic

6.0.r8044

Xsigo Oracle Virtual Network XSVNIC Network Driver

xve

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, the mpt2sas driver has been merged with the mpt3sas driver to provide a single driver module that supports both SAS 2.0 and SAS 3.0 HBAs. Changes have been applied to dracut 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