UEK R7 (5.15.0)

Unbreakable Enterprise Kernel Release 7 (UEK R7) is based on the upstream 5.15.0 kernel.

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 7 is initially released with the 5.15.0-0.30.19 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 7:

  • 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 7 is made available for installation on the latest Oracle Linux 8 and Oracle Linux 9 update releases.

  • In UEK 7, 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 7.

  • Although UEK 7 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.

  • A version of UEK 7 that enables 64k pages is available for 64-bit Arm (aarch64) platforms for Oracle Linux 9. The kernel-uek64k package is available on Oracle Cloud Infrastructure Arm compute shapes only. Use of this kernel outside of Oracle Cloud Infrastructure is only available as a technical preview.

Notable changes in kernel headers

Upstream changes to kernel headers might mean that third-party modules don't 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're 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 such as 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