From c92fe6f0e654d49f00465e81f8f491ef9240fb80 Mon Sep 17 00:00:00 2001 From: Christian Kruse Date: Thu, 5 Jan 2012 17:45:38 +0100 Subject: [PATCH] Introduce boot parameter root_trim=(yes|no) for SSDs --- defaults/initrd.scripts | 8 +++++++- defaults/linuxrc | 4 ++++ doc/genkernel.8.txt | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts index 89c6d8b..b7b42ab 100755 --- a/defaults/initrd.scripts +++ b/defaults/initrd.scripts @@ -732,7 +732,7 @@ openLUKS() { ;; esac - eval local LUKS_DEVICE='"${CRYPT_'${TYPE}'}"' LUKS_NAME="$1" LUKS_KEY='"${CRYPT_'${TYPE}'_KEY}"' LUKS_KEYDEV='"${CRYPT_'${TYPE}'_KEYDEV}"' + eval local LUKS_DEVICE='"${CRYPT_'${TYPE}'}"' LUKS_NAME="$1" LUKS_KEY='"${CRYPT_'${TYPE}'_KEY}"' LUKS_KEYDEV='"${CRYPT_'${TYPE}'_KEYDEV}"' LUKS_TRIM='"${CRYPT_'${TYPE}'_TRIM}"' local DEV_ERROR=0 KEY_ERROR=0 KEYDEV_ERROR=0 local mntkey="/mnt/key/" cryptsetup_options='' @@ -793,6 +793,12 @@ openLUKS() { continue else # Handle keys + if [ "x${LUKS_TRIM}" = "xyes" ] + then + good_msg "Enabling TRIM support for ${LUKS_NAME}." ${CRYPT_SILENT} + cryptsetup_options="${cryptsetup_options} --allow-discards" + fi + if [ -n "${LUKS_KEY}" ] then if [ ! -e "${mntkey}${LUKS_KEY}" ] diff --git a/defaults/linuxrc b/defaults/linuxrc index 63366bd..28d204e 100755 --- a/defaults/linuxrc +++ b/defaults/linuxrc @@ -189,6 +189,10 @@ do root_keydev=*) CRYPT_ROOT_KEYDEV=${x#*=} ;; + root_trim=*) + CRYPT_ROOT_TRIM=${x#*=} + ;; + swap_key=*) CRYPT_SWAP_KEY=${x#*=} ;; diff --git a/doc/genkernel.8.txt b/doc/genkernel.8.txt index 35c7ff3..d436330 100644 --- a/doc/genkernel.8.txt +++ b/doc/genkernel.8.txt @@ -387,6 +387,11 @@ which the ramdisk scripts would recognize. root_key. If unset while using root_key, it will automatically look for the device in every boot. +*root_trim*=yes|no:: + Allows you to enable TRIM support on root device. Only useful + for SSD setups. Have a look at http://en.wikipedia.org/wiki/TRIM + for more information. + *swap_key*=<...>:: Same as root_key for swap. -- 2.26.2