From fe09b611238f716cc58541767bcd6bcafc3574fe Mon Sep 17 00:00:00 2001 From: tytydraco Date: Tue, 29 Sep 2020 11:32:52 -0700 Subject: [PATCH 01/26] Revert "Remove HRTICK from master branch" This reverts commit 4f08c914aea8fde5ab287a8cb2657646681918fb. --- ktweak | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ktweak b/ktweak index e10dd29..c26a105 100644 --- a/ktweak +++ b/ktweak @@ -108,6 +108,9 @@ then # Schedule tasks on their origin CPU if possible write /sys/kernel/debug/sched_features TTWU_QUEUE + + # Use a high resolution timer for the scheduler + write /sys/kernel/debug/sched_features HRTICK fi if [[ -d "/dev/stune/" ]] From ef66bc1a4e2674f33b490fc42954997ba01dfcb9 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Tue, 29 Sep 2020 11:59:43 -0700 Subject: [PATCH 02/26] Add network tweaks Signed-off-by: tytydraco --- ktweak | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ktweak b/ktweak index c26a105..8bb6b1f 100644 --- a/ktweak +++ b/ktweak @@ -101,6 +101,15 @@ write /proc/sys/vm/swappiness 100 # Allow more inodes and dentries to be cached write /proc/sys/vm/vfs_cache_pressure 60 +# Enable Explicit Congestion Control +write /proc/sys/net/ipv4/tcp_ecn 1 + +# Enable fast socket open for receiver and sender +write /proc/sys/net/ipv4/tcp_fastopen 3 + +# Disable SYN cookies +write /proc/sys/net/ipv4/tcp_syncookies 0 + if [[ -f "/sys/kernel/debug/sched_features" ]] then # Consider scheduling tasks that are eager to run From ecada3b618f1a984ab9758c2862b4166850bdda9 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Tue, 29 Sep 2020 12:08:18 -0700 Subject: [PATCH 03/26] Fix migration limits Signed-off-by: tytydraco --- ktweak | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ktweak b/ktweak index 8bb6b1f..954501c 100644 --- a/ktweak +++ b/ktweak @@ -36,12 +36,12 @@ echo "Time of execution: $(date)" for _ in $(seq 2) do # Migrate tasks down at this much load - write /proc/sys/kernel/sched_downmigrate 80 - write /proc/sys/kernel/sched_group_downmigrate "80 80" + write /proc/sys/kernel/sched_downmigrate "80 80" + write /proc/sys/kernel/sched_group_downmigrate 80 # Migrate tasks up at this much load - write /proc/sys/kernel/sched_upmigrate 80 - write /proc/sys/kernel/sched_group_upmigrate "80 80" + write /proc/sys/kernel/sched_upmigrate "80 80" + write /proc/sys/kernel/sched_group_upmigrate 80 done # Limit max perf event processing time to this much CPU usage From 4031ff36d6b525b314ef08e519404a6ec33dcb3d Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Wed, 30 Sep 2020 09:10:41 -0700 Subject: [PATCH 04/26] Fix overheating Signed-off-by: Tyler Nijmeh --- ktweak | 3 --- 1 file changed, 3 deletions(-) diff --git a/ktweak b/ktweak index 954501c..9f6746a 100644 --- a/ktweak +++ b/ktweak @@ -124,9 +124,6 @@ fi if [[ -d "/dev/stune/" ]] then - # Artificially inflate top-app task load - write /dev/stune/top-app/schedtune.boost 10 - # Prefer to schedule top-app tasks on idle CPUs write /dev/stune/top-app/schedtune.prefer_idle 1 fi From 445d7d3e2f3d4d8bc334934adea6df27c3635965 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Wed, 30 Sep 2020 10:37:00 -0700 Subject: [PATCH 05/26] Do not force requests on origin CPU Signed-off-by: tytydraco --- ktweak | 3 --- 1 file changed, 3 deletions(-) diff --git a/ktweak b/ktweak index 9f6746a..d61581a 100644 --- a/ktweak +++ b/ktweak @@ -180,9 +180,6 @@ do # Only attempt simple merges write "${queue}nomerges" 1 - # Force request completion on the origin CPU for maximum cache locality - write "${queue}rq_affinity" 2 - # Reduce heuristic read-ahead in exchange for I/O latency write "${queue}read_ahead_kb" 16 From 2e619fca9a625b0854d6efd2e2a8966a5aaee547 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Wed, 30 Sep 2020 11:17:03 -0700 Subject: [PATCH 06/26] Sync before applying Signed-off-by: tytydraco --- ktweak | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ktweak b/ktweak index d61581a..bde018b 100644 --- a/ktweak +++ b/ktweak @@ -30,6 +30,9 @@ fi # Log the date and time for records sake echo "Time of execution: $(date)" +# Sync to data in the rare case a device crashes +sync + # We need to execute this multiple times because # sched_downmirate must be less than sched_upmigrate, and # sched_upmigrate must be greater than sched_downmigrate From de9cee794af3f22cebe5c61bc5e4e03ffa056eed Mon Sep 17 00:00:00 2001 From: tytydraco Date: Sat, 3 Oct 2020 14:14:09 -0700 Subject: [PATCH 07/26] Relax scheduler latency restrictions Signed-off-by: tytydraco --- ktweak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ktweak b/ktweak index 320b4e1..cb4657a 100644 --- a/ktweak +++ b/ktweak @@ -5,7 +5,7 @@ UINT_MAX="4294967295" # Duration in nnaoseconds of one scheduling period -SCHED_PERIOD="$((2 * 1000 * 1000))" +SCHED_PERIOD="$((4 * 1000 * 1000))" # How many tasks should we have at a maximum in one scheduling period SCHED_TASKS="10" From 4353b943892a940e8d2c4420ca5dd73363546236 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Sat, 3 Oct 2020 21:04:19 -0700 Subject: [PATCH 08/26] Add branch information to logs Signed-off-by: tytydraco --- ktweak | 1 + 1 file changed, 1 insertion(+) diff --git a/ktweak b/ktweak index cb4657a..43dcd16 100644 --- a/ktweak +++ b/ktweak @@ -38,6 +38,7 @@ fi # Log the date and time for records sake echo "Time of execution: $(date)" +echo "Branch: dev" # Sync to data in the rare case a device crashes sync From a6e7e7c3550241ea42ac3aeba789b55a4919e891 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Sat, 3 Oct 2020 23:21:06 -0700 Subject: [PATCH 09/26] Revert "Stretch CPU frequency bounds" This reverts commit a9d0a8c6ee41c7c4d0d3f3cb2906c690c377961b. --- ktweak | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ktweak b/ktweak index 43dcd16..4656147 100644 --- a/ktweak +++ b/ktweak @@ -144,10 +144,6 @@ do # Fetch the available governors from the CPU avail_govs="$(cat "$cpu/scaling_available_governors")" - # Stretch CPU bounds - write "$cpu/scaling_max_freq" "$(cat "$cpu/cpuinfo_max_freq")" - write "$cpu/scaling_min_freq" "$(cat "$cpu/cpuinfo_min_freq")" - # Attempt to set the governor in this order for governor in schedutil interactive do From a61be162e1f5868b363ac4492d6a1d765cc95a59 Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Sun, 4 Oct 2020 11:26:18 -0700 Subject: [PATCH 10/26] Fix typo Signed-off-by: Tyler Nijmeh --- ktweak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ktweak b/ktweak index 4656147..18d1fa2 100644 --- a/ktweak +++ b/ktweak @@ -4,7 +4,7 @@ # Maximum unsigned integer size in C UINT_MAX="4294967295" -# Duration in nnaoseconds of one scheduling period +# Duration in nanoseconds of one scheduling period SCHED_PERIOD="$((4 * 1000 * 1000))" # How many tasks should we have at a maximum in one scheduling period From 6a35ba9d80b66540d4170d7cfc03b1a07ca4e0b6 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Sun, 4 Oct 2020 13:46:46 -0700 Subject: [PATCH 11/26] Look for high performing CPUs on top-app Signed-off-by: tytydraco --- ktweak | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ktweak b/ktweak index 18d1fa2..cab2aca 100644 --- a/ktweak +++ b/ktweak @@ -136,6 +136,9 @@ if [[ -d "/dev/stune/" ]] then # Prefer to schedule top-app tasks on idle CPUs write /dev/stune/top-app/schedtune.prefer_idle 1 + + # Mark top-app as boosted, find high-performing CPUs + write /dev/stune/top-app/schedtune.boost 1 fi # Loop over each CPU in the system From 4523d9b654ebaa90054d401cad9dd7ed8aae5dac Mon Sep 17 00:00:00 2001 From: tytydraco Date: Mon, 5 Oct 2020 20:44:55 -0700 Subject: [PATCH 12/26] Properly scale governor sample rates to sched periods Signed-off-by: tytydraco --- ktweak | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ktweak b/ktweak index cab2aca..1a1bb42 100644 --- a/ktweak +++ b/ktweak @@ -163,9 +163,9 @@ done find /sys/devices/system/cpu/ -name schedutil -type d | while IFS= read -r governor do # Consider changing frequencies once per scheduling period - write "$governor/up_rate_limit_us" 5000 - write "$governor/down_rate_limit_us" 5000 - write "$governor/rate_limit_us" 5000 + write "$governor/up_rate_limit_us" "$((SCHED_PERIOD / 1000))" + write "$governor/down_rate_limit_us" "$((SCHED_PERIOD / 1000))" + write "$governor/rate_limit_us" "$((SCHED_PERIOD / 1000))" # Jump to max frequency at 90% load write "$governor/hispeed_load" 90 @@ -176,8 +176,8 @@ done find /sys/devices/system/cpu/ -name interactive -type d | while IFS= read -r governor do # Consider changing frequencies once per scheduling period - write "$governor/timer_rate" 5000 - write "$governor/min_sample_time" 5000 + write "$governor/timer_rate" "$((SCHED_PERIOD / 1000))" + write "$governor/min_sample_time" "$((SCHED_PERIOD / 1000))" # Jump to max frequency at 90% load write "$governor/go_hispeed_load" 90 From 448f2230c1207d22f3737afe41fb65af78da4816 Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Tue, 6 Oct 2020 15:41:30 -0700 Subject: [PATCH 13/26] Revert "Disable child runs first to fix idle" This reverts commit e741439983b718aa626729b3814734960a9ffa7b. --- ktweak | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ktweak b/ktweak index 1a1bb42..050da3b 100644 --- a/ktweak +++ b/ktweak @@ -63,6 +63,9 @@ write /proc/sys/kernel/perf_cpu_time_max_percent 5 # Do not group task groups automatically write /proc/sys/kernel/sched_autogroup_enabled 0 +# Execute child process before parent after fork +write /proc/sys/kernel/sched_child_runs_first 1 + # Preliminary requirement for the following values write /proc/sys/kernel/sched_tunable_scaling 0 From 66b795905415d34e5c5eaa9913385259a16d42c0 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Wed, 7 Oct 2020 17:12:07 -0700 Subject: [PATCH 14/26] Remove hardcoded values in comments Signed-off-by: tytydraco --- ktweak | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ktweak b/ktweak index 050da3b..84bf51c 100644 --- a/ktweak +++ b/ktweak @@ -72,7 +72,7 @@ write /proc/sys/kernel/sched_tunable_scaling 0 # Reduce the maximum scheduling period for lower latency write /proc/sys/kernel/sched_latency_ns "$SCHED_PERIOD" -# Schedule 10 tasks in the guarenteed sched period +# Schedule this ratio of tasks in the guarenteed sched period write /proc/sys/kernel/sched_min_granularity_ns "$((SCHED_PERIOD / SCHED_TASKS))" # Require preeptive tasks to surpass half of a sched period in vmruntime @@ -170,7 +170,7 @@ do write "$governor/down_rate_limit_us" "$((SCHED_PERIOD / 1000))" write "$governor/rate_limit_us" "$((SCHED_PERIOD / 1000))" - # Jump to max frequency at 90% load + # Jump to hispeed frequency at this load percentage write "$governor/hispeed_load" 90 write "$governor/hispeed_freq" "$UINT_MAX" done @@ -182,7 +182,7 @@ do write "$governor/timer_rate" "$((SCHED_PERIOD / 1000))" write "$governor/min_sample_time" "$((SCHED_PERIOD / 1000))" - # Jump to max frequency at 90% load + # Jump to hispeed frequency at this load percentage write "$governor/go_hispeed_load" 90 write "$governor/hispeed_freq" "$UINT_MAX" done From f7d3d498fdb4fabb06ba52e2131a0e9904681290 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Thu, 8 Oct 2020 18:45:50 -0700 Subject: [PATCH 15/26] Reduce sched period Signed-off-by: tytydraco --- ktweak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ktweak b/ktweak index 84bf51c..7a3a423 100644 --- a/ktweak +++ b/ktweak @@ -5,7 +5,7 @@ UINT_MAX="4294967295" # Duration in nanoseconds of one scheduling period -SCHED_PERIOD="$((4 * 1000 * 1000))" +SCHED_PERIOD="$((1 * 1000 * 1000))" # How many tasks should we have at a maximum in one scheduling period SCHED_TASKS="10" From 4dd00ab654a4470ecd26de1a8a5f89fb7de12bf1 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Fri, 9 Oct 2020 12:46:28 -0700 Subject: [PATCH 16/26] Only ramp down every four scheduler cycles Avoid costly frequency switching if it is possible to stay at a consistent frequency for longer. Signed-off-by: tytydraco --- ktweak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ktweak b/ktweak index 7a3a423..ae1baa9 100644 --- a/ktweak +++ b/ktweak @@ -167,7 +167,7 @@ find /sys/devices/system/cpu/ -name schedutil -type d | while IFS= read -r gover do # Consider changing frequencies once per scheduling period write "$governor/up_rate_limit_us" "$((SCHED_PERIOD / 1000))" - write "$governor/down_rate_limit_us" "$((SCHED_PERIOD / 1000))" + write "$governor/down_rate_limit_us" "$((4 * SCHED_PERIOD / 1000))" write "$governor/rate_limit_us" "$((SCHED_PERIOD / 1000))" # Jump to hispeed frequency at this load percentage From b52241706ebd8f46f74bf836af9e609b2cd1a6ce Mon Sep 17 00:00:00 2001 From: tytydraco Date: Fri, 9 Oct 2020 12:57:53 -0700 Subject: [PATCH 17/26] Disable printk logging Signed-off-by: tytydraco --- ktweak | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ktweak b/ktweak index ae1baa9..4cdab48 100644 --- a/ktweak +++ b/ktweak @@ -90,6 +90,9 @@ write /proc/sys/kernel/sched_nr_migrate 8 # Disable scheduler statistics to reduce overhead write /proc/sys/kernel/sched_schedstats 0 +# Disable unnecessary printk logging +write /proc/sys/kernel/printk_devkmsg off + # Start non-blocking writeback later write /proc/sys/vm/dirty_background_ratio 10 From 6d4b8aea13b46e1f776f3277d6e8f49e9cb91611 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Fri, 9 Oct 2020 13:17:49 -0700 Subject: [PATCH 18/26] Only apply Android specific tweaks if we are on Android Signed-off-by: tytydraco --- ktweak | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ktweak b/ktweak index 4cdab48..81110b9 100644 --- a/ktweak +++ b/ktweak @@ -35,6 +35,8 @@ then exit 1 fi +# Detect if we are running on Android +grep -q android /proc/cmdline && ANDROID=true # Log the date and time for records sake echo "Time of execution: $(date)" @@ -46,7 +48,7 @@ sync # We need to execute this multiple times because # sched_downmirate must be less than sched_upmigrate, and # sched_upmigrate must be greater than sched_downmigrate -for _ in $(seq 2) +[[ "$ANDROID" == true ]] && for _ in $(seq 2) do # Migrate tasks down at this much load write /proc/sys/kernel/sched_downmigrate "80 80" @@ -82,7 +84,7 @@ write /proc/sys/kernel/sched_wakeup_granularity_ns "$((SCHED_PERIOD / 2))" write /proc/sys/kernel/sched_migration_cost_ns 5000000 # Always allow sched boosting on top-app tasks -write /proc/sys/kernel/sched_min_task_util_for_colocation 0 +[[ "$ANDROID" == true ]] && write /proc/sys/kernel/sched_min_task_util_for_colocation 0 # Improve real time latencies by reducing the scheduler migration time write /proc/sys/kernel/sched_nr_migrate 8 @@ -138,7 +140,7 @@ then write /sys/kernel/debug/sched_features HRTICK fi -if [[ -d "/dev/stune/" ]] +[[ "$ANDROID" == true ]] && if [[ -d "/dev/stune/" ]] then # Prefer to schedule top-app tasks on idle CPUs write /dev/stune/top-app/schedtune.prefer_idle 1 From cd66e212e36c09d10659485fe955a79c77544bf5 Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Fri, 16 Oct 2020 08:52:40 -0700 Subject: [PATCH 19/26] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b39c588..51793a3 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,6 @@ No. Well, yes. However, a "kernel optimizer" is a poor way to put it. KTweak per * [MAGNETAR](https://github.com/Magisk-Modules-Grave/MAGNETAR) also uses closed source, compiled binaries. I'd love to say more about this, but I can't even find out what the module even does. * [FDE.AI](https://forum.xda-developers.com/apps/magisk/beta-feradroid-engine-v0-19-ultimate-t3284421) also uses closed source, compiled binaries with a paid variant. * [LKT](https://github.com/Magisk-Modules-Grave/legendary_kernel_tweaks/blob/master/common/system.prop) sets random nonsensical build.props that don't even exist. -* [NUKED](https://forum.xda-developers.com/apps/magisk/module-tool-atteryerformancerivacy-t4131715) is yet another closed source, compiled binary. It makes a lot of claims that it cannot back up. Under further investigation, it was discovered that the binaries are heavily obfuscated. * [ZeetaTweaks](https://t.me/zeetaaprojbot) is a clone of KTweak with the values changed. As of the V11 zip, it disables essential system services, deletes files permanently from /data/data, kills perfd (which is the userspace boosting daemon), disables SELinux, disables fsync, and various other detrimental changes. # What's different about KTweak? From fc3663746a86d7da8bb3379917c3cb874e342adb Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Sat, 17 Oct 2020 14:23:49 -0700 Subject: [PATCH 20/26] Remove duplicate line --- ktweak | 3 --- 1 file changed, 3 deletions(-) diff --git a/ktweak b/ktweak index ec302db..59ffc22 100644 --- a/ktweak +++ b/ktweak @@ -68,9 +68,6 @@ write /proc/sys/kernel/sched_autogroup_enabled 1 # Execute child process before parent after fork write /proc/sys/kernel/sched_child_runs_first 1 -# Execute child process before parent after fork -write /proc/sys/kernel/sched_child_runs_first 1 - # Preliminary requirement for the following values write /proc/sys/kernel/sched_tunable_scaling 0 From 66d002d69303e4660819b194f7c3ef6e2b63cd78 Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Tue, 20 Oct 2020 17:40:48 -0700 Subject: [PATCH 21/26] Remove stune boost as it causes overheating --- ktweak | 9 --------- 1 file changed, 9 deletions(-) diff --git a/ktweak b/ktweak index 59ffc22..31433df 100644 --- a/ktweak +++ b/ktweak @@ -140,15 +140,6 @@ then write /sys/kernel/debug/sched_features HRTICK fi -[[ "$ANDROID" == true ]] && if [[ -d "/dev/stune/" ]] -then - # Prefer to schedule top-app tasks on idle CPUs - write /dev/stune/top-app/schedtune.prefer_idle 1 - - # Mark top-app as boosted, find high-performing CPUs - write /dev/stune/top-app/schedtune.boost 1 -fi - # Loop over each CPU in the system for cpu in /sys/devices/system/cpu/cpu*/cpufreq do From b0aa06ad2a93688ef576a88c232fc33845b565c7 Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Tue, 20 Oct 2020 17:41:24 -0700 Subject: [PATCH 22/26] Increase readahead a bit --- ktweak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ktweak b/ktweak index 31433df..1326e13 100644 --- a/ktweak +++ b/ktweak @@ -203,7 +203,7 @@ do write "$queue/iostats" 0 # Reduce heuristic read-ahead in exchange for I/O latency - write "$queue/read_ahead_kb" 16 + write "$queue/read_ahead_kb" 128 # Reduce the maximum number of I/O requests in exchange for latency write "$queue/nr_requests" 64 From 97b79eee8d689709107904c64f56137796303a13 Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Tue, 20 Oct 2020 20:56:26 -0700 Subject: [PATCH 23/26] Let Android determine rate limits --- ktweak | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ktweak b/ktweak index 1326e13..f32ac62 100644 --- a/ktweak +++ b/ktweak @@ -45,20 +45,6 @@ echo "Branch: dev" # Sync to data in the rare case a device crashes sync -# We need to execute this multiple times because -# sched_downmirate must be less than sched_upmigrate, and -# sched_upmigrate must be greater than sched_downmigrate -[[ "$ANDROID" == true ]] && for _ in $(seq 2) -do - # Migrate tasks down at this much load - write /proc/sys/kernel/sched_downmigrate "70 70" - write /proc/sys/kernel/sched_group_downmigrate 70 - - # Migrate tasks up at this much load - write /proc/sys/kernel/sched_upmigrate "70 70" - write /proc/sys/kernel/sched_group_upmigrate 70 -done - # Limit max perf event processing time to this much CPU usage write /proc/sys/kernel/perf_cpu_time_max_percent 5 From c3ee652890ea131f5f41a4761a4464664d2a6764 Mon Sep 17 00:00:00 2001 From: tytydraco Date: Wed, 21 Oct 2020 21:13:12 -0700 Subject: [PATCH 24/26] Revert "Remove stune boost as it causes overheating" This reverts commit 66d002d69303e4660819b194f7c3ef6e2b63cd78. --- ktweak | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ktweak b/ktweak index f32ac62..8d0e97f 100644 --- a/ktweak +++ b/ktweak @@ -126,6 +126,15 @@ then write /sys/kernel/debug/sched_features HRTICK fi +[[ "$ANDROID" == true ]] && if [[ -d "/dev/stune/" ]] +then + # Prefer to schedule top-app tasks on idle CPUs + write /dev/stune/top-app/schedtune.prefer_idle 1 + + # Mark top-app as boosted, find high-performing CPUs + write /dev/stune/top-app/schedtune.boost 1 +fi + # Loop over each CPU in the system for cpu in /sys/devices/system/cpu/cpu*/cpufreq do From 46b218375e49e5bece8d397aa4f6760a18c6d09a Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Thu, 22 Oct 2020 12:03:29 -0700 Subject: [PATCH 25/26] Test if hrtick caused panics --- ktweak | 3 --- 1 file changed, 3 deletions(-) diff --git a/ktweak b/ktweak index 8d0e97f..61a16ee 100644 --- a/ktweak +++ b/ktweak @@ -121,9 +121,6 @@ then # Schedule tasks on their origin CPU if possible write /sys/kernel/debug/sched_features TTWU_QUEUE - - # Use a high resolution timer for the scheduler - write /sys/kernel/debug/sched_features HRTICK fi [[ "$ANDROID" == true ]] && if [[ -d "/dev/stune/" ]] From e6d32a0afa84085b68ef0af026aadd5693aa5eb6 Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Fri, 23 Oct 2020 00:56:35 -0700 Subject: [PATCH 26/26] Reduce bias for dentries and inodes Signed-off-by: Tyler Nijmeh --- ktweak | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ktweak b/ktweak index 61a16ee..465ad69 100644 --- a/ktweak +++ b/ktweak @@ -102,8 +102,8 @@ write /proc/sys/vm/stat_interval 10 # Swap to the swap device at a fair rate write /proc/sys/vm/swappiness 100 -# Allow more inodes and dentries to be cached -write /proc/sys/vm/vfs_cache_pressure 60 +# Prioritize page cache over simple file structure nodes +write /proc/sys/vm/vfs_cache_pressure 200 # Enable Explicit Congestion Control write /proc/sys/net/ipv4/tcp_ecn 1