Chapter 7. Installing RHEL on ARM with Kernel-64k
By default, RHEL 9 is distributed with a kernel supporting a 4k page size. This 4k kernel is sufficient for efficient memory usage in smaller environments or small cloud instances where the usage of a 64k page kernel is not practical due to space, power, and cost constraints.
It is not recommended to move between 4k and 64k page size kernels after the initial boot without reinstallation of the OS.
7.1. Installing Kernel-64k on ARM using Kickstart
RHEL offers the ARM64 hardware architecture to support workloads that require large physical memory configuration for optimal performance. Such large memory configuration requires the use of a large MMU page size (64k).
While installing RHEL 9, you can select the kernel-64k
package to install RHEL with kernel supporting 64k page size.
Procedure
In the
%packages
section of the kickstart file, add thekernel-64k
package:%packages kernel-64k %end
To set the
kernel-64k
as default, add the following lines to the%post
section:%post set -x k=$(echo /boot/vmlinuz*64k) grubby --set-default=$k \ --update-kernel=$k \ --args="crashkernel=2G-:640M" %end
After initial boot, remove the 4k Kernel entering the following command:
# dnf erase kernel
Keeping both versions accidentally can make the 4k kernel default when you update the kernel in future using the
yum update
command.
Verification steps
To verify the page size, open the terminal and run:
$ getconf PAGESIZE 65536
The output
65536
indicates that the 64k kernel is in use.- To verify that the swap partition is enabled, enter:
$ free total used free shared buff/cache available Mem: 35756352 3677184 34774848 25792 237120 32079168 Swap: 6504384 0 6504384
The total and free columns are non-zero, which indicates the swap is enabled successfully.
7.2. Installing Kernel-64k on ARM using the command line
If you have already installed RHEL with the default kernel (supporting 4k page size), you can install kernel-64k
post installation using the command line.
Procedure
Open the terminal as the root user, and enter:
# dnf -y install kernel-64k
To set the
kernel-64k
as default, enter:# k=$(echo /boot/vmlinuz*64k) # grubby --set-default=$k \ --update-kernel=$k \ --args="crashkernel=2G-:640M"
Reboot the system:
# reboot
Optional: After reboot, remove the 4k kernel:
# dnf erase kernel
Keeping both versions accidentally can make the 4k kernel default when you update the kernel in future using the
yum update
command.
Verification steps
To verify the page size, open the terminal and run the following command as any user:
$ getconf PAGESIZE 65536
The output
65536
indicates that the 64k kernel is in use.- To verify swap is enabled, enter:
$ free total used free shared buff/cache available Mem: 35756352 3677184 34774848 25792 237120 32079168 Swap: 6504384 0 6504384
The total and free columns are non-zero, which indicates the swap is enabled successfully.