1 About Unbreakable Enterprise Kernel Release 7 Update 1

This chapter provides an overview of Unbreakable Enterprise Kernel Release 7 Update 1 (UEK R7U1) and contains important information about this major release.

Note:

Upgrading from an Unbreakable Enterprise Kernel Developer Preview release to its later official version isn't supported. If you're running the Developer Preview version, you must reinstall the official UEK release upon its general availability.

UEK R7U1 is initially released with the 5.15.0-100.96.32 version of the kernel. The kernel's source code is available through a public git source code repository at https://github.com/oracle/linux-uek.

The following is a general description of the scope of support for UEK R7U1:

  • The kernel is developed, built, and tested on the 64-bit Arm (aarch64), Intel® 64-bit x86_64, and AMD 64-bit x86_64 architectures and is based on the mainline Linux kernel version 5.15.0.

  • UEK R7U1 is made available for installation on the latest Oracle Linux 8 and Oracle Linux 9 update releases.

  • In UEK R7U1, more 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. Note that Oracle actively monitors upstream check-ins and applies critical bug and security fixes to UEK R7U1.

  • Although UEK R7U1 uses the same versioning model as the mainline Linux kernel version, it's possible that some applications might not understand the 5.15.0 versioning scheme. Note, however, that regular Linux applications are usually neither aware of nor affected by Linux kernel version numbers.

Certification of UEK R7 for Oracle Products

The following important information applies to the certification of Oracle products with UEK R7.

Note that certification of different Oracle products with UEK R7 might not be immediately available at the time of the UEK R7 release. Ensure that the product you're using is certified for use with UEK R7 before upgrading or installing the kernel. You can check for certification information 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.

Compatibility

Oracle Linux maintains full user space compatibility with Red Hat Enterprise Linux (RHEL), which is independent of the kernel version that's running underneath the OS. Note that existing applications in user space continue to run unmodified with UEK R7; no recertifications are required for RHEL certified applications.

To minimize any impact on interoperability during releases, the Oracle Linux team works with third-party vendors that have hardware and software with dependencies on kernel modules. The kernel ABI for UEK R7 will remain unchanged in all subsequent updates to the initial release. Customers migrating from UEK6 must be aware that kernel ABIs have changed in UEK7. If an application is using kernel modules, users must verify the support status with the application vendor.

Notable changes in kernel headers

Upstream changes to kernel headers might 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, which 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 UEK R6 and UEK R7, change the 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