You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/fastpath/_index.md
+6-7Lines changed: 6 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,20 +1,19 @@
1
1
---
2
-
title: Fastpath Kernel Build and Install Guide
2
+
title: Benchmark on Arm servers with different Linux kernels using Fastpath
3
3
4
4
draft: true
5
5
cascade:
6
6
draft: true
7
7
8
8
minutes_to_complete: 45
9
9
10
-
who_is_this_for: Software developers and performance engineers who want to explore benchmarking across different kernel versions with Fastpath on Arm.
10
+
who_is_this_for: This is an advanced topic for software developers and performance engineers who want to benchmark and compare different Linux kernel versions on Arm servers.
11
11
12
12
learning_objectives:
13
-
- Understand how Fastpath streamlines kernel experimentation workflows
14
-
- Provision an Arm-based build machine and compile Fastpath-enabled kernels on it
15
-
- Provision an Arm-based test system, also known as the System Under Test (SUT)
16
-
- Create a test plan consisting of kernel versions and benchmark suites
17
-
- Launch an Arm-based Fastpath host to orchestrate the kernel benchmarking process on the SUT
13
+
- Build custom Linux kernels for Arm systems using tuxmake and Fastpath
14
+
- Configure and provision Arm-based EC2 instances for kernel testing
15
+
- Create and execute test plans that compare kernel performance across versions
16
+
- Analyze benchmark results to identify performance differences between kernels
18
17
19
18
prerequisites:
20
19
- An AWS account with permissions to create EC2 instances
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/fastpath/analyze_benchmark_results.md
+21-18Lines changed: 21 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,26 +1,24 @@
1
1
---
2
-
title: "Analyze the Benchmark Results"
2
+
title: "Analyze the benchmark results"
3
3
weight: 14
4
4
5
5
layout: "learningpathall"
6
6
---
7
7
8
8
## Review benchmark results
9
9
10
+
To inspect the outputs stored in the `results/` directory, use the sample commands output when `generate_plan.sh` completed. Some examples are below:
10
11
11
-
12
-
To inspect the outputs stored in the `results/` directory you can use the sample commands output when `generate_plan.sh` completed. Some examples are below:
13
-
14
-
### List swprofiles involved from tests saved in the *results* folder:
12
+
### List swprofiles from tests
15
13
16
14
To see the swprofiles (kernels) tested and stored in the results directory, run:
17
15
18
-
```commandline
16
+
```console
19
17
source ~/venv/bin/activate
20
18
~/fastpath/fastpath/fastpath result list results-fastpath_test_010826-1837 --object swprofile
21
19
```
22
20
23
-
If you followed the tutorial exactly, you should see output similar to:
21
+
The output is similar to:
24
22
25
23
```output
26
24
+------------------+----------------------+
@@ -58,12 +56,15 @@ If you followed the tutorial exactly, you should see output similar to:
58
56
59
57
### View relative results per kernel
60
58
61
-
To see the relative results for each kernel, run the following commands:
59
+
To see the relative results for each kernel, run the following command:
62
60
63
-
```commandline
64
-
~/fastpath/fastpath/fastpath result show results-fastpath_test_010826-1837 --swprofile fp_6.19.0-rc1-ubuntu --relative
61
+
```console
62
+
~/fastpath/fastpath/fastpath result show results-fastpath_test_010826-1837 --swprofile fp_6.19.0-rc1-ubuntu --relative
65
63
```
66
-
Relative in this case means that the statistics displayed are relative to the mean. In addition to the min/mean/max, you are also given the confidence interval bounds, the coefficient of variation and the number of samples, similar to:
64
+
65
+
Relative in this case means that the statistics displayed are relative to the mean. In addition to the min/mean/max, you're also given the confidence interval bounds, the coefficient of variation, and the number of samples.
We see 6.18.1 is performing slightly better than 6.19-rc1 in this benchmark.
110
111
111
-
More examples of analyzing results can be found in the [*fastpath* Results User Guide](https://fastpath.docs.arm.com/en/latest/user-guide/resultshow.html).
112
+
More examples of analyzing results can be found in the [Fastpath Results User Guide](https://fastpath.docs.arm.com/en/latest/user-guide/resultshow.html).
113
+
114
+
When you're done testing, remember to terminate your EC2 instances and clean up any other AWS resources you created to avoid unnecessary charges.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/fastpath/build_setup.md
+49-78Lines changed: 49 additions & 78 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,31 +1,31 @@
1
1
---
2
-
title: "Setup Build Instance"
2
+
title: "Set up the kernel build host"
3
3
4
4
weight: 3
5
5
6
6
layout: "learningpathall"
7
7
---
8
8
9
-
## Provision the build host
9
+
## Provision the kernel build host
10
10
11
-
CPU-optimized instances compile kernels quickly, so in our example, an AWS Graviton `m6g.12xlarge` instance is used. It will be referred to as the *build* machine throughout the rest of the guide.
11
+
CPU-optimized instances compile kernels quickly, so in our example, an AWS Graviton `m6g.12xlarge` instance is used. It will be referred to as the kernel build host throughout the rest of the guide.
12
12
13
13
{{% notice Note %}}
14
-
The following steps involve launching an EC2 instance. You can perform all EC2 instance creation steps via the AWS Management Console instead or AWS CLI. For step-by-step instructions to bring up an EC2 instance via the console, consult the [Compute Service Provider learning path](/learning-paths/servers-and-cloud-computing/csp/)for detailed instructions. A tutorial from AWS is also available via[Get started with Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html).
14
+
The following steps involve launching an EC2 instance. You can perform all EC2 instance creation steps using the AWS Management Console or AWS CLI. For step-by-step instructions to bring up an EC2 instance using the console, see [Get started with Arm-based cloud instances](/learning-paths/servers-and-cloud-computing/csp/)or the AWS tutorial[Get started with Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html).
15
15
{{% /notice %}}
16
16
17
-
Create build host with the following specifications:
17
+
Create the kernel build host with the following specifications:
18
18
19
-
1.**Name** — *fastpath-build*
20
-
2.**Operating system** — *Ubuntu*
21
-
3.**AMI** — *Ubuntu 24.04 LTS (Arm)*
22
-
4.**Architecture** — *64-bit Arm*
19
+
1.**Name** — fastpath-build
20
+
2.**Operating system** — Ubuntu
21
+
3.**AMI** — Ubuntu 24.04 LTS (Arm)
22
+
4.**Architecture** — 64-bit Arm
23
23
5.**Instance type** — `m6g.12xlarge`
24
-
6.**Key pair** — *Select or create a key for SSH*
25
-
7.**Security group** — *allow SSH inbound from your IP and cluster peers*
26
-
8.**Storage** — *200 GB gp3*
24
+
6.**Key pair** — Select or create a key for SSH
25
+
7.**Security group** — Allow SSH inbound from your IP and cluster peers
26
+
8.**Storage** — 200 GB gp3
27
27
28
-
There are many different ways to create this instance, and a few different methods are demonstrated below. Choose the method which suits you best.
28
+
There are many different ways to create this instance, and a few different methods are demonstrated below. Choose the method that suits you best.
When the instance reports a `running` state, note the public and private IP addresses as BUILD_PUBLIC_IP and BUILD_PRIVATE_IP. You'll need these values later.
163
+
When the instance reports a `running` state, note the public and private IP addresses as BUILD_PUBLIC_IP and BUILD_PRIVATE_IP. You'll need these values later.
164
164
165
-
## Clone the Kernel Build repository on the build machine
165
+
## Clone the Kernel Build repository on the build host
166
166
167
-
The Kernel Build repository contains build scripts and configuration files needed to easily compile kernels. To clone the repository:
167
+
The kernel build repository contains build scripts and configuration files to compile kernels.
168
168
169
-
1. SSH into the `m6g.12xlarge` host using the configured key pair.
169
+
To clone the repository, first, SSH into the `m6g.12xlarge` host using the configured key pair.
170
170
171
-
```output
172
-
ssh -i ~/.ssh/gcohen1.pem ubuntu@34.216.87.65
171
+
For more background, refer to the [Install required dependencies](/learning-paths/servers-and-cloud-computing/kernel-build/how-to-1/#install-required-dependencies) of the kernel build Learning Path.
173
172
174
-
$ ssh -i ~/.ssh/gcohen1.pem ubuntu@54.174.185.226
173
+
Run the commands from that section on the build host.
175
174
176
-
Warning: Permanently added '54.174.185.226' (ED25519) to the list of known hosts.
177
-
Welcome to Ubuntu 24.04.3 LTS (GNU/Linux 6.14.0-1018-aws aarch64)
178
-
179
-
System information as of Thu Jan 8 18:12:07 UTC 2026
180
-
181
-
System load: 0.35 Users logged in: 0
182
-
Memory usage: 0% IPv4 address for ens66: 172.31.110.110
183
-
184
-
Last login: Thu Jan 8 18:12:14 2026 from 217.140.103.82
185
-
ubuntu@ip-172-31-110-110:~$
186
-
```
187
-
188
-
2. Open the [Install and Clone section](/learning-paths/servers-and-cloud-computing/kernel-build/how-to-1/#install-required-dependencies) of the install guide from your workstation.
189
-
190
-
3. Run each command from that section on the build machine. It should be similar to the following (always refer to the above link for the latest command line):
With the repository cloned, you can now produce kernels with *fastpath* support.
185
+
With the repository cloned, you can now produce kernels with Fastpath support.
217
186
218
187
Normally, to manually build, you'd have to:
219
188
220
189
- Update the host and install proper versions of every kernel build dependency
221
-
- Find and utilize the current stock kernel config
190
+
- Find and use the current stock kernel config
222
191
- Clone the upstream kernel tree to fetch the desired versions and clean the tree between builds
223
-
- For each kernel version, copy the base config into the workspace, and append all *fastpath*-specific options
192
+
- For each kernel version, copy the base config into the workspace, and append all Fastpath-specific options
224
193
- Run tuxmake for each kernel with the proper options
225
-
- Repeat the entire process for the second tag, ensuring the builds don’t collide
194
+
- Repeat the entire process for the second tag, ensuring the builds don't collide
226
195
- Verify both kernel directories contain the required files
227
-
228
-
But do not fear... Using ```scripts/kernel_build_and_install.sh``` bundles all those steps together in a single easy-to-use command.
229
196
230
-
### Which kernels should you build and test against with Fastpath?
231
-
The answer to this question depends on what you are trying to accomplish.
197
+
The `scripts/kernel_build_and_install.sh` script bundles all those steps together in a single easy-to-use command.
198
+
199
+
### Which kernels should you build and test with Fastpath?
232
200
233
-
If you are running through the *fastpath* tutorial for the first time and getting used to how it works, its fine to use the arbitrary kernel versions given in *fastpath* Example 2, which are v6.18.1 and v6.19-rc1.
201
+
The answer to this question depends on what you're trying to accomplish.
234
202
235
-
Once you are familiar with the process and you wish to explore and test further, choose any specific kernel versions, based on your use case.
203
+
If you're running through the Fastpath tutorial for the first time and getting used to how it works, use kernel versions v6.18.1 and v6.19-rc1.
204
+
205
+
Once you're familiar with the process and want to explore and test further, choose any specific kernel versions based on your use case.
236
206
237
207
## Compile and build Fastpath-enabled kernels 6.18.1 and 6.19-rc1
238
208
239
209
{{% notice Note %}}
240
-
Warning messages are expected at compile-time. Warnings can be safely ignored, however fatal errors should be investigated.
210
+
Warning messages are expected at compile-time. Warnings can be safely ignored, however fatal errors should be investigated.
241
211
{{% /notice %}}
242
212
243
-
To compile kernels with *fastpath* options:
213
+
To compile kernels with Fastpath options:
244
214
245
-
1.On the build machine, ```cd``` into the `arm_kernel_install_guide` folder you just cloned.
215
+
On the build host, navigate to the `arm_kernel_install_guide` folder you just cloned.
Open the [Custom tags with Fastpath enabled](/learning-paths/servers-and-cloud-computing/kernel-build/how-to-3/#build-custom-tags-with-fastpath-enabled) section from the Learning Path, and follow the instructions to run the build script.
2. Open the [Custom tags with *fastpath* enabled](/learning-paths/servers-and-cloud-computing/kernel-build/how-to-3/#build-custom-tags-with-fastpath-enabled) section from the install guide, and follow the instructions to run the build script. It should be similar to the following (always refer to the above link for the latest command line):
227
+
The output should be similar to the following (always refer to the above link for the latest command line):
@@ -275,8 +246,8 @@ I: build output in /home/ubuntu/kernels/6.19.0-rc1-ubuntu
275
246
[2026-01-08 18:32:06] [v6.19-rc1-2] Build artifacts are located in /home/ubuntu/kernels/6.19.0-rc1-ubuntu+
276
247
```
277
248
278
-
The script will now build two kernel images. This process may take some time -- on a `m6g.12xlarge` instance, expect approximately 30 minutes for both kernel builds to complete.
249
+
The script builds two kernel images. This process may take some time. On a `m6g.12xlarge` instance, expect approximately 30 minutes for both kernel builds to complete.
279
250
280
-
4.Monitor the console output for the `BUILD COMPLETE` message.
251
+
Monitor the console output for the `BUILD COMPLETE` message.
281
252
282
-
Once finished, you will be ready to move on to the next step, where you prepare the *fastpath* host.
253
+
Once finished, you're ready to move on to the next step, where you prepare the Fastpath host.
0 commit comments