From 129176452c3286ad5806fff194969cc8dba4ba4c Mon Sep 17 00:00:00 2001 From: Benjamin Hipple Date: Sun, 15 Mar 2020 19:18:51 -0400 Subject: [PATCH] nixos-ami: update nvme_core.io_timeout for linux kernel >= 4.15 NixOS 20.03 is built on kernel 5.4 and 19.09 is on 4.19, so we should update this option to the highest value possible, per linked upstream instructions from Amazon. --- nixos/maintainers/scripts/ec2/amazon-image.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/nixos/maintainers/scripts/ec2/amazon-image.nix b/nixos/maintainers/scripts/ec2/amazon-image.nix index 31e15537179..36f3e7af873 100644 --- a/nixos/maintainers/scripts/ec2/amazon-image.nix +++ b/nixos/maintainers/scripts/ec2/amazon-image.nix @@ -8,10 +8,15 @@ in { imports = [ ../../../modules/virtualisation/amazon-image.nix ]; - # Required to provide good EBS experience, + # Amazon recomments setting this to the highest possible value for a good EBS + # experience, which prior to 4.15 was 255. # https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html#timeout-nvme-ebs-volumes - # TODO change value to 4294967295 when kernel is updated to 4.15 or later - config.boot.kernelParams = [ "nvme_core.io_timeout=255" ]; + config.boot.kernelParams = + let timeout = + if pkgs.lib.versionAtLeast config.boot.kernelPackages.kernel.version "4.15" + then "4294967295" + else "255"; + in [ "nvme_core.io_timeout=${timeout}" ]; options.amazonImage = { name = mkOption {