mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2025-05-02 06:26:20 -04:00
KSM tuning
- Only enable on Linux 3.0 through 4.9 - Always enable defer option - Only run twice a second, instead of fifty times a second Signed-off-by: Tad <tad@spotco.us>
This commit is contained in:
parent
11c286ecd4
commit
1c9076fffe
19 changed files with 51 additions and 24 deletions
|
@ -901,7 +901,18 @@ hardenDefconfig() {
|
|||
optionsYes+=("DEBUG_KERNEL" "DEBUG_CREDENTIALS" "DEBUG_LIST" "DEBUG_VIRTUAL");
|
||||
optionsYes+=("DEBUG_RODATA" "DEBUG_SET_MODULE_RONX");
|
||||
#optionsYes+=("DEBUG_SG"); #bootloops - https://patchwork.kernel.org/patch/8989981
|
||||
if [ "$DOS_USE_KSM" = true ]; then optionsYes+=("KSM"); fi;
|
||||
|
||||
if [ "$DOS_USE_KSM" = true ] && [ -f "mm/ksm.c" ]; then
|
||||
if [[ $kernelVersion == "3."* ]] || [[ $kernelVersion == "4.4"* ]] || [[ $kernelVersion == "4.9"* ]]; then
|
||||
optionsYes+=("KSM");
|
||||
sed -i 's/unsigned int ksm_run = KSM_RUN_STOP;/unsigned int ksm_run = KSM_RUN_MERGE;/' mm/ksm.c &>/dev/null || true;
|
||||
sed -i 's/unsigned long ksm_run = KSM_RUN_STOP;/unsigned long ksm_run = KSM_RUN_MERGE;/' mm/ksm.c &>/dev/null || true;
|
||||
else
|
||||
local ksmNotNeeded=true;
|
||||
sed -i 's/unsigned int ksm_run = KSM_RUN_MERGE;/unsigned int ksm_run = KSM_RUN_STOP;/' mm/ksm.c &>/dev/null || true;
|
||||
sed -i 's/unsigned long ksm_run = KSM_RUN_MERGE;/unsigned long ksm_run = KSM_RUN_STOP;/' mm/ksm.c &>/dev/null || true;
|
||||
fi;
|
||||
fi;
|
||||
|
||||
if [[ $kernelVersion == "3."* ]] || [[ $kernelVersion == "4.4"* ]] || [[ $kernelVersion == "4.9"* ]]; then
|
||||
optionsYes+=("DEBUG_NOTIFIERS"); #(https://github.com/GrapheneOS/os-issue-tracker/issues/681)
|
||||
|
@ -1084,7 +1095,7 @@ hardenDefconfig() {
|
|||
optionsNo+=("HIBERNATION");
|
||||
optionsNo+=("KEXEC" "KEXEC_FILE");
|
||||
optionsNo+=("UKSM");
|
||||
if [ "$DOS_USE_KSM" = false ]; then optionsNo+=("KSM"); fi;
|
||||
if [ "$DOS_USE_KSM" = false ] || [ "$ksmNotNeeded" = true ]; then optionsNo+=("KSM"); fi;
|
||||
optionsNo+=("LIVEPATCH");
|
||||
optionsNo+=("WIREGUARD"); #Requires root access, which we do not provide
|
||||
if [ "$DOS_DEBLOBBER_REMOVE_IPA" = true ]; then optionsNo+=("IPA" "RMNET_IPA"); fi;
|
||||
|
|
|
@ -24,12 +24,12 @@ echo "Post tweaks...";
|
|||
#MSM_DLOAD_MODE can't be disabled as it breaks compile
|
||||
sed -i 's/set_dload_mode(in_panic)/set_dload_mode(0)/' kernel/*/*/arch/arm/mach-msm/restart.c &>/dev/null || true;
|
||||
|
||||
if [ "$DOS_USE_KSM" = true ]; then
|
||||
#Enable KSM #XXX testing only
|
||||
sed -i 's/unsigned int ksm_run = KSM_RUN_STOP;/unsigned int ksm_run = KSM_RUN_MERGE;/' kernel/*/*/mm/ksm.c &>/dev/null || true;
|
||||
sed -i 's/unsigned long ksm_run = KSM_RUN_STOP;/unsigned long ksm_run = KSM_RUN_MERGE;/' kernel/*/*/mm/ksm.c &>/dev/null || true;
|
||||
#Increase power efficiency of KSM
|
||||
sed -i 's/bool use_deferred_timer;/bool use_deferred_timer = true;/' kernel/*/*/mm/ksm.c &>/dev/null || true;
|
||||
sed -i 's/unsigned int ksm_thread_sleep_millisecs = 20;/unsigned int ksm_thread_sleep_millisecs = 500;/' kernel/*/*/mm/ksm.c &>/dev/null || true;
|
||||
|
||||
#Enable slub/slab merging #XXX testing only
|
||||
if [ "$DOS_USE_KSM" = true ]; then
|
||||
#Enable slub/slab merging
|
||||
sed -i 's/static int slub_nomerge;/static int slub_nomerge = 0;/' kernel/*/*/mm/slub.c &>/dev/null || true; #2.6.22-3.17
|
||||
sed -i 's/static int slab_nomerge;/static int slab_nomerge = 0;/' kernel/*/*/mm/slab_common.c &>/dev/null || true; #3.18-4.12
|
||||
sed -i 's/static bool slab_nomerge = !IS_ENABLED(CONFIG_SLAB_MERGE_DEFAULT);/static bool slab_nomerge = false;/' kernel/*/*/mm/slab_common.c &>/dev/null || true; #4.13+
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue