A push towards 16K ARM kernels [call for testers]

Hello fellow NixOS users,

I’ll try to keep this short and precise. The Linux kernel on the ARM architecture supports using a different pagesize than the one used on x86. We all use a kernel with a 4KB pagesize because it was the best when x86 was hot. A 16KB pagesize is even better for some tasks (and a 64KB is even better than that).

This effort is being made to make sure that NixOS works on Apple Silicon given that a 16KB kernel is required by the hardware. Since we cannot just flip a switch for everyone, I’m maintaining a fork of nixpkgs (it’s just one line and I hope it stays that way) that builds a 16K kernel and have a binary cache for people who want to test without compiling. More details in the README of the repository linked below.

Repository: GitHub - thefossguy/nixpkgs at 16k-kernel

In case someone wants to explore this topic, I have a couple links:

  1. Broken Software · AsahiLinux/docs Wiki · GitHub
  2. https://www.phoronix.com/review/ampereone-64k-linux611

Finally, please feel free to reach out with any problems you face while you’re testing. Bad software or missing outPath in the binary cache, anything.

9 Likes

Any particular reason to maintain a fork rather than as an overlay or a module implementing an overlay?

There’s already this repo for running NixOS on the ARM Mac. That kernel config is set to 16K pages.

2 Likes

This announcement is mostly for three purposes:

  1. Formally announce a 16K kernel (I am not aware of any such previous announcements).
  2. Call for testers in aiding as many bugs as possible before wider rollout.
  3. Providing a binary cache for interested testers.

It is a fork because that helps me track the changes+breakages in nixpkgs better. An overlay is what I use in my own nixos configuration.

4 Likes

I can test, I’ve been running a 64k page size kernel on my Ampere Altra. I also have my M1 Pro MBP with the Asahi Linux kernel. A while ago I pretty much removed every version of Flutter which doesn’t support 16k and 64k page sizes.

1 Like