1 New Features and Changes

Unbreakable Enterprise Kernel Release 6 (UEK R6) is a heavily tested and optimized operating system kernel for Oracle Linux 7.7 and later and for Oracle Linux 8.1 and later. The kernel is developed, built, and tested on the 64-bit Arm (aarch64), Intel x86, and AMD x86 (x86_64) platforms. The kernel is based on the mainline Linux kernel version 5.4. This release also updates drivers and includes bug and security fixes.

Oracle actively monitors upstream check-ins and applies critical bug and security fixes to UEK R6.

UEK R6U2 uses the 5.4.17-2102 version and build of the UEK R6 kernel, which includes security and bug fixes, as well as driver updates.

UEK R6 uses the same versioning model as the mainline Linux kernel version. It is possible that some applications might not understand the 5.4 versioning scheme. However, regular Linux applications are usually neither aware of nor affected by Linux kernel version numbers.

UEK R6 maintains compatibility with the Red Hat Compatible Kernel (RHCK) and does not disable any features that are enabled in RHCK. Additional features are enabled to provide support for key functional requirements and patches are applied to improve performance and optimize the kernel for use on Oracle operating environments.

The kernel's source code is available through a public git source code repository at https://github.com/oracle/linux-uek.

Notable Features and Changes

The following are the major, new features of Unbreakable Enterprise Kernel Release 6 Update 2 (UEK R6U2).

Core Kernel Functionality

UEK R6U2 provides equivalent core kernel functionality to UEK R6, but is updated to the upstream mainline kernel v5.4.83 release tag and includes upstream LTS bug fixes, with additional patches to enhance existing functionality and provide some minor bug fixes and security improvements. Key changes are specific to functionality that is required for Oracle Database and other Oracle software.

New Slab Memory Controller

This update introduces a new slab memory controller for the Linux kernel. The new slab memory controller specifically addresses the low slab utilization issue that existed in the previous design. Previously, slab allocator internals were replicated for each memory cgroup and slab caches that were used by one memory cgroup were dynamically created and destroyed and could not be shared by other memory cgroups.

The new slab memory controller moves slab accounting from the page level to the object level, thus enabling all memory cgroups to use and share a single set of slab caches, globally. This improvement is particularly beneficial for systems with a large number of memory cgroups. Note that upstream reports have indicated a 50% savings in slab memory usage, per the implementation of this feature.

vDPA driver support for Mellanox ConnectX-6 Dx devices added

Support for the vHost Data Path Acceleration (vDPA) framework, as well as Mellanox CX6-DX VDPA driver, has been added in this update. When utilized on a host, this feature provides for high-performance, Virtual I/O Device (VirtIO) acceleration. This functionality is implemented by the device's hardware, while preserving the ability to use standard VirtIO drivers on the virtual machines (VMs) that are running on the host.

NVMe improvements and changes

This update provides fixes for most of the bugs that were present in the 5.9 kernel. Other notable NVMe improvements and changes that are introduced include the following:

  • nvmet: ctrl model and ctrl-id is configurable through subsys attribute

    This change adds a new target subsys attribute that enables you to optionally specify a model name and a ctrl-did, which then is used in the nvmet_execute_identify_ctrl() function to complete the nvme_id_ctrl structure.

  • nvme: hostid and hostnqn exposed through sysfs for fabrics controllers

    This change enables user space to connect with a custom hostid and hostnqn, which can be useful in certain cases. Note, however, that there is no way to determine what hostid is used to connect to a given controller.

  • nvme-fc/nvmet-fc: FC-NVME-2 disconnect association support added

    This added support improves the error-handling framework for NVMe-FC and is enabled in the Emulex (lpfc) driver.

File Systems

The following file system changes are implemented in UEK R6U2:

  • Btrfs

    General upstream patches for security enhancements and bug fixes have been applied.

  • CIFS

    General upstream bug fix patches have been applied. Notably, a fix was applied for an issue that resulted in a kernel panic when the CIFS module attempted a reconnect to a CIFS server that was unavailable.

  • Ext4

    General upstream patches for security enhancements and bug fixes have been applied.

  • NFS

    General upstream bug fixes and performance enhancements have been applied for NFS. Additionally, several fixes and improvements were applied for NFS v4.2 Server Side Copy functionality which remains available as a technical preview.

  • OCFS2

    A fix was applied to better handle setting ACLs on the file system so that they are made effective immediately and any cached ACLs are reset.

  • XFS

    General upstream patches for security enhancements and bug fixes have been applied.

vhost and vhost-scsi Performance Improvements

Kernel improvements have been made in this release to boost IOPS (input/output operations per second) for a vhost SCSI device over dm-multipath.

Notable changes, fixes, and improvements include the following:

  • Improved error handling for vhost-scsi to prevent SCSI commands from failing when a SCSI command times out in the guest OS.

  • A fix to the vhost-scsi module's multiqueue support so that a single vhost-scsi device can execute up to 1024 commands over up to 128 virtqueues.

Technical Preview Features

Several features are under investigation and ongoing development for release within UEK R6. The following features are available within UEK R6U2 as a technical preview.

  • Core Scheduling

    Core scheduling is a feature enabled in the kernel to limit trusted tasks to run concurrently on CPU cores that share compute resources to help mitigate against certain categories of 'core shared cache' processor bugs that could cause data leakage and other related vulnerabilities. This feature has been enabled in UEK R6 since UEK R6U1 as a technical preview and is under active development.

  • WireGuard

    WireGuard is a faster and more secure replacement for IPsec and OpenVPN. New networks are being built with modern cryptography from WireGuard rather than legacy technologies like IPsec and OpenVPN. WireGuard has been enabled as a technical preview in UEK R6 since UEK R6U1 and continues to be available as a technical preview in the current update release. Several improvememnts for WireGuard are included in this update release.

  • NFS v4.2 Server Side Copy

    NFS v4.2 Server Side Copy functionality is back-ported from the upstream kernel and has been available in UEK R6 since UEK R6U1 as a technical preview. The server-side copy features provide mechanisms that allow an NFS client to copy file data on a server or between two servers without the data being transmitted back and forth over the network through the NFS client. Several improvements for this feature are included in this update release.

Driver Updates

The Unbreakable Enterprise Kernel Release 6 supports a large number of hardware and devices. In close cooperation with hardware and storage vendors, Oracle has updated several device drivers from the versions in mainline Linux 5.4.

A complete list of the driver modules included in UEK R6, along with version information is provided in the appendix at Driver Modules in Unbreakable Enterprise Kernel Release 6 (x86_64).

The following new features are noted in the drivers that are shipped with UEK R6U2:

  • Broadcom Emulex LightPulse Fibre Channel SCSI driver

    The Broadcom Emulex LightPulse Fibre Channel SCSI driver, lpfc, is updated to version 12.8.0.5 with vendor supplied patches and bug fixes. Notably, a 256 Gb speed setting is enabled for SCSI Fibre Channel transport.

  • LSI MPT Fusion SAS 3.0 Device driver

    The LSI MPT Fusion SAS 3.0 Device driver, mpt3sas, is updated to version 36.100.00.00 to include vendor supplied patches that bring the driver version in line with the upstream kernel release.

  • QLogic Fibre Channel HBA driver

    The QLogic Fibre Channel HBA driver, qla2xxx is updated to version 10.02.00.103-k and includes a large number of vendor supplied patches to bring the driver version in line with the upstream kernel release.

Compatibility

Oracle Linux maintains full user space compatibility with Red Hat Enterprise Linux (RHEL), which is independent of the kernel version that is running underneath the operating system. Existing applications in user space continue to run unmodified on the Unbreakable Enterprise Kernel Release 6 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 R6 remains unchanged in all subsequent updates to the initial release. In this release, there are changes to the kernel ABI relative to UEK R5 that require recompilation of third-party kernel modules on the system. Before installing UEK R6, verify its support status with your application vendor.

Notable changes in kernel headers

Upstream changes to kernel headers may mean that third party modules do not compile across different kernel versions without modification to source code. Notably, the memcg_cache_params structure has been moved from include/linux/slab.h to mm/slab.h. This means that code needs to be refactored to account for the change if you are compiling across kernel versions.

To solve this problem, so that the code can compile for both UEK R5 and UEK R6, change header requirements in the source code. For example, change lines like those in the following example to what is shown in the second example:

#ifdef CONFIG_SLUB
#include <linux/slub_def.h>
#endif
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0) )

#ifdef CONFIG_SLUB
#include <linux/slub_def.h>
#endif

#endif 

Certification of UEK R6 for Oracle products

Note that the certification of different Oracle products on UEK R6 may not be immediately available at the time of a UEK R6 release. You should always check to ensure that the product you are using is certified for use on UEK R6 before upgrading or installing the kernel. Check certification at https://support.oracle.com/epmos/faces/CertifyHome.

Oracle Automatic Storage Management Cluster File System (Oracle ACFS) certification for different kernel versions is described in Document ID 1369107.1, which is available at https://support.oracle.com/epmos/faces/DocumentDisplay?id=1369107.1.

Oracle Automatic Storage Management Filter Driver (Oracle ASMFD) certification for different kernel versions is described in Document ID 2034681.1, which is available at https://support.oracle.com/epmos/faces/DocumentDisplay?id=2034681.1.