# Benchmark Linux kernel performance on Arm servers with Fastpath

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/fastpath/)
- [Understand the Fastpath kernel benchmarking workflow](https://learn.arm.com/learning-paths/servers-and-cloud-computing/fastpath/intro/)
- [Set up the kernel build host](https://learn.arm.com/learning-paths/servers-and-cloud-computing/fastpath/build_setup/)
- [Set up the Fastpath host](https://learn.arm.com/learning-paths/servers-and-cloud-computing/fastpath/fastpath_setup/)
- [Set up the System Under Test](https://learn.arm.com/learning-paths/servers-and-cloud-computing/fastpath/sut_setup/)
- [Generate and execute the benchmark plan](https://learn.arm.com/learning-paths/servers-and-cloud-computing/fastpath/generate_and_execute_plan/)
- [Analyze the benchmark results](https://learn.arm.com/learning-paths/servers-and-cloud-computing/fastpath/analyze_benchmark_results/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/fastpath/_next-steps/)

## About this Learning Path

|                     |                   |
|---------------------|-------------------|
| Skill level:        | Advanced           |
| Reading time:       | 1 hr 30 min       |
| Last updated:       | 11 Sep 2026       |
| Author:             | Geremy Cohen, Arm [GitHub](https://github.com/geremyCohen) [LinkedIn](https://linkedin.com/in/geremyinanutshell)  |
| Arm IP:             | [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors) |
| Tags:               | [Performance and Architecture](https://learn.arm.com/tag/performance-and-architecture) [AWS Graviton](https://learn.arm.com/tag/aws-graviton) [Linux](https://learn.arm.com/tag/linux) [Fastpath](https://learn.arm.com/tag/fastpath) [tuxmake](https://learn.arm.com/tag/tuxmake) |

### 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.

### What will you learn?
Upon completion of this Learning Path, you will be able to:
- Build custom Linux kernels for Arm systems using tuxmake and Fastpath
- Configure and provision Arm-based EC2 instances for kernel testing
- Create and execute test plans that compare kernel performance across versions
- Analyze benchmark results to identify performance differences between kernels

### Prerequisites
Before starting, you will need the following:
- An AWS account with permissions to create EC2 instances
- Familiarity with basic Linux administration and SSH

### Summary
You’ll build and benchmark Linux kernels on Arm-based Amazon EC2 instances using `tuxmake` and Fastpath. First, you’ll provision a build host, Fastpath host, and system under test, then compile kernels and create a YAML benchmark plan. Fastpath installs each kernel, runs the selected workloads, and collects results so that you can compare kernel performance across versions.

### Frequently asked questions

<details>
<summary>Which EC2 instance type should I use for the kernel build host?</summary>
Use a CPU-optimized Graviton-based instance such as `m6g.12xlarge`.
</details>

<details>
<summary>Can I create the EC2 instances with the AWS console or do I need the CLI?</summary>
You can use either the AWS Management Console or the AWS CLI.
</details>

<details>
<summary>How do I know the SUT is ready for benchmarking?</summary>
Provision a Graviton-based instance running Ubuntu 24.04 LTS, configure the Fastpath software and user account, and validate connectivity from the Fastpath host. Proceed only when SSH access and required configuration are confirmed.
</details>

<details>
<summary>What does the Fastpath YAML plan include, and how is it created?</summary>
The plan defines the SUT, the kernels to deploy, and the benchmark workloads to run. The helper script `generate_plan.sh` gathers the required information and generates a valid `plan.yaml`.
</details>

<details>
<summary>How do I compare results between two kernels?</summary>
Use Fastpath’s `result show` command with the results directory, both `--swprofile` values, and the `--relative` option. The output compares metrics such as the minimum, mean, maximum, confidence interval, coefficient of variation, and sample count for each kernel.
</details>
