Skip to content

Commit 5003f63

Browse files
authored
Merge pull request #69212 from kelbrown20/OSDOCS-6518
OSDOCS#6518: 64k pages in the RHCOS kernal support on multi-arch compute
2 parents 0dd7f65 + b8dd60b commit 5003f63

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
//Module included in the following assemblies
2+
//
3+
//post_installation_configuration/multi-architecture-configuration.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="multi-architecture-enabling-64k-pages_{context}"]
7+
8+
= Enabling 64k pages on the {op-system-first} kernel
9+
10+
You can enable the 64k memory page in the {op-system-first} kernel on the 64-bit ARM compute machines in your cluster. The 64k page size kernel specification can be used for large GPU or high memory workloads. This is done using the Machine Config Operator (MCO) which uses a machine config pool to update the kernel. To enable 64k page sizes, you must dedicate a machine config pool for ARM64 to enable on the kernel.
11+
12+
[IMPORTANT]
13+
====
14+
Using 64k pages is exclusive to 64-bit ARM architecture compute nodes or clusters installed on 64-bit ARM machines. If you configure the 64k pages kernel on a machine config pool using 64-bit x86 machines, the machine config pool and MCO will degrade.
15+
====
16+
17+
.Prerequisites:
18+
* You installed the OpenShift CLI (`oc`).
19+
* You created a cluster with compute nodes of different architecture on one of the supported platforms.
20+
21+
.Procedure:
22+
23+
. Label the nodes where you want to run the 64k page size kernel:
24+
[source,terminal]
25+
+
26+
----
27+
$ oc label node <node_name> <label>
28+
----
29+
+
30+
.Example command
31+
[source,terminal]
32+
----
33+
$ oc label node worker-arm64-01 node-role.kubernetes.io/worker-64k-pages=
34+
----
35+
36+
. Create a machine config pool that contains the worker role that uses the ARM64 architecture and the `worker-64k-pages` role:
37+
[source,yaml]
38+
+
39+
----
40+
apiVersion: machineconfiguration.openshift.io/v1
41+
kind: MachineConfigPool
42+
metadata:
43+
name: worker-64k-pages
44+
spec:
45+
machineConfigSelector:
46+
matchExpressions:
47+
- key: machineconfiguration.openshift.io/role
48+
operator: In
49+
values:
50+
- worker
51+
- worker-64k-pages
52+
nodeSelector:
53+
matchLabels:
54+
node-role.kubernetes.io/worker-64k-pages: ""
55+
kubernetes.io/arch: arm64
56+
----
57+
58+
. Create a machine config on your compute node to enable `64k-pages` with the `64k-pages` parameter.
59+
+
60+
[source,terminal]
61+
----
62+
$ oc create -f <filename>.yaml
63+
----
64+
+
65+
.Example MachineConfig
66+
[source,yaml]
67+
----
68+
apiVersion: machineconfiguration.openshift.io/v1
69+
kind: MachineConfig
70+
metadata:
71+
labels:
72+
machineconfiguration.openshift.io/role: "worker-64k-pages" <1>
73+
name: 99-worker-64kpages
74+
spec:
75+
kernelType: 64k-pages <2>
76+
----
77+
<1> Specify the value of the `machineconfiguration.openshift.io/role` label in the custom machine config pool. The example MachineConfig uses the `worker-64k-pages` label to enable 64k pages in the `worker-64k-pages` pool.
78+
<2> Specify your desired kernel type. Valid values are `64k-pages` and `default`
79+
+
80+
[NOTE]
81+
====
82+
The `64k-pages` type is supported on only 64-bit ARM architecture based compute nodes. The `realtime` type is supported on only 64-bit x86 architecture based compute nodes.
83+
====
84+
85+
.Verification
86+
87+
* To view your new `worker-64k-pages` machine config pool, run the following command:
88+
+
89+
[source,terminal]
90+
----
91+
$ oc get mcp
92+
----
93+
+
94+
.Example output
95+
[source,terminal]
96+
----
97+
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE
98+
master rendered-master-9d55ac9a91127c36314e1efe7d77fbf8 True False False 3 3 3 0 361d
99+
worker rendered-worker-e7b61751c4a5b7ff995d64b967c421ff True False False 7 7 7 0 361d
100+
worker-64k-pages rendered-worker-64k-pages-e7b61751c4a5b7ff995d64b967c421ff True False False 2 2 2 0 35m
101+
----

post_installation_configuration/configuring-multi-arch-compute-machines/multi-architecture-compute-managing.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,6 @@ include::modules/multi-architecture-scheduling-examples.adoc[leveloffset=+2]
2424

2525
* xref:../../machine_management/modifying-machineset.adoc#machineset-modifying_modifying-machineset[Modifying a compute machine set]
2626

27+
include::modules/multi-architecture-enabling-64k-pages.adoc[leveloffset=+1]
28+
2729
include::modules/multi-architecture-import-imagestreams.adoc[leveloffset=+1]

0 commit comments

Comments
 (0)