# 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<br>[GitHub](https://github.com/geremyCohen)<br>[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) [Linux](https://learn.arm.com/tag/linux) |

### 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?
After completing this Learning Path, you'll be able to perform the following tasks:
- 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'll need the following prerequisites:
- 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

**Which EC2 instance type should I use for the kernel build host?**

Use a CPU-optimized Graviton-based instance such as `m6g.12xlarge`.

**Can I create the EC2 instances with the AWS console or do I need the CLI?**

You can use either the AWS Management Console or the AWS CLI.

**How do I know the SUT is ready for benchmarking?**

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.

**What does the Fastpath YAML plan include, and how is it created?**

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

**How do I compare results between two kernels?**

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.
