summarylogtreecommitdiffstats
path: root/02-Glitched-PDS-by-TkG.patch
diff options
context:
space:
mode:
authorKyle De'Vir2019-05-14 01:17:13 +1000
committerKyle De'Vir2019-05-14 01:17:13 +1000
commitee545f391b146ccbaf77a478156bdd4d114d6e8a (patch)
treee3924bd789c8b1f0418942b4a721b76c67a73288 /02-Glitched-PDS-by-TkG.patch
parentef6015078d7e66b52ba2224cc09d28355f86695e (diff)
downloadaur-ee545f391b146ccbaf77a478156bdd4d114d6e8a.tar.gz
Partial changes 1
Diffstat (limited to '02-Glitched-PDS-by-TkG.patch')
-rw-r--r--02-Glitched-PDS-by-TkG.patch164
1 files changed, 164 insertions, 0 deletions
diff --git a/02-Glitched-PDS-by-TkG.patch b/02-Glitched-PDS-by-TkG.patch
new file mode 100644
index 000000000000..bb479cdcd6fb
--- /dev/null
+++ b/02-Glitched-PDS-by-TkG.patch
@@ -0,0 +1,164 @@
+From f7f49141a5dbe9c99d78196b58c44307fb2e6be3 Mon Sep 17 00:00:00 2001
+From: Tk-Glitch <ti3nou@gmail.com>
+Date: Wed, 4 Jul 2018 04:30:08 +0200
+Subject: glitched - PDS
+
+diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
+index 6b423eebfd5d..61e3271675d6 100644
+--- a/drivers/cpufreq/cpufreq_ondemand.c
++++ b/drivers/cpufreq/cpufreq_ondemand.c
+@@ -21,10 +21,10 @@
+ #include "cpufreq_ondemand.h"
+
+ /* On-demand governor macros */
+-#define DEF_FREQUENCY_UP_THRESHOLD (63)
+-#define DEF_SAMPLING_DOWN_FACTOR (1)
++#define DEF_FREQUENCY_UP_THRESHOLD (55)
++#define DEF_SAMPLING_DOWN_FACTOR (5)
+ #define MAX_SAMPLING_DOWN_FACTOR (100000)
+-#define MICRO_FREQUENCY_UP_THRESHOLD (95)
++#define MICRO_FREQUENCY_UP_THRESHOLD (63)
+ #define MICRO_FREQUENCY_MIN_SAMPLE_RATE (10000)
+ #define MIN_FREQUENCY_UP_THRESHOLD (1)
+ #define MAX_FREQUENCY_UP_THRESHOLD (100)
+diff --git a/kernel/Kconfig.hz b/kernel/Kconfig.hz
+index 2a202a846757..1d9c7ed79b11 100644
+--- a/kernel/Kconfig.hz
++++ b/kernel/Kconfig.hz
+@@ -4,7 +4,7 @@
+
+ choice
+ prompt "Timer frequency"
+- default HZ_250
++ default HZ_500
+ help
+ Allows the configuration of the timer frequency. It is customary
+ to have the timer interrupt run at 1000 Hz but 100 Hz may be more
+@@ -39,6 +39,13 @@ choice
+ on SMP and NUMA systems and exactly dividing by both PAL and
+ NTSC frame rates for video and multimedia work.
+
++ config HZ_500
++ bool "500 HZ"
++ help
++ 500 Hz is a balanced timer frequency. Provides fast interactivity
++ on desktops with great smoothness without increasing CPU power
++ consumption and sacrificing the battery life on laptops.
++
+ config HZ_1000
+ bool "1000 HZ"
+ help
+@@ -52,6 +59,7 @@ config HZ
+ default 100 if HZ_100
+ default 250 if HZ_250
+ default 300 if HZ_300
++ default 500 if HZ_500
+ default 1000 if HZ_1000
+
+ config SCHED_HRTICK
+
+diff --git a/kernel/Kconfig.hz b/kernel/Kconfig.hz
+index 2a202a846757..1d9c7ed79b11 100644
+--- a/kernel/Kconfig.hz
++++ b/kernel/Kconfig.hz
+@@ -4,7 +4,7 @@
+
+ choice
+ prompt "Timer frequency"
+- default HZ_500
++ default HZ_750
+ help
+ Allows the configuration of the timer frequency. It is customary
+ to have the timer interrupt run at 1000 Hz but 100 Hz may be more
+@@ -46,6 +46,13 @@ choice
+ on desktops with great smoothness without increasing CPU power
+ consumption and sacrificing the battery life on laptops.
+
++ config HZ_750
++ bool "750 HZ"
++ help
++ 750 Hz is a good timer frequency for desktops. Provides fast
++ interactivity with great smoothness without sacrificing too
++ much throughput.
++
+ config HZ_1000
+ bool "1000 HZ"
+ help
+@@ -60,6 +67,7 @@ config HZ
+ default 250 if HZ_250
+ default 300 if HZ_300
+ default 500 if HZ_500
++ default 750 if HZ_750
+ default 1000 if HZ_1000
+
+ config SCHED_HRTICK
+
+diff --git a/mm/vmscan.c b/mm/vmscan.c
+index 9270a4370d54..30d01e647417 100644
+--- a/mm/vmscan.c
++++ b/mm/vmscan.c
+@@ -159,7 +159,7 @@ struct scan_control {
+ /*
+ * From 0 .. 100. Higher means more swappy.
+ */
+-int vm_swappiness = 60;
++int vm_swappiness = 20;
+ /*
+ * The total number of pages which are beyond the high watermark within all
+ * zones.
+
+diff --git a/kernel/sched/pds.c b/kernel/sched/pds.c
+index c2d831b242b6d18a47e0d87a9f5433a7748b52ff..5bc8d7a8f920c21feab69b2706a3328dc8d39f9a 100644
+--- a/kernel/sched/pds.c
++++ b/kernel/sched/pds.c
+@@ -409,12 +409,11 @@ struct rq *task_rq_lock(struct task_struct *p, struct rq_flags *rf)
+ * [L] ->on_rq
+ * RELEASE (rq->lock)
+ *
+- * If we observe the old CPU in task_rq_lock(), the acquire of
++ * If we observe the old CPU in task_rq_lock, the acquire of
+ * the old rq->lock will fully serialize against the stores.
+ *
+- * If we observe the new CPU in task_rq_lock(), the address
+- * dependency headed by '[L] rq = task_rq()' and the acquire
+- * will pair with the WMB to ensure we then also see migrating.
++ * If we observe the new CPU in task_rq_lock, the acquire will
++ * pair with the WMB to ensure we must then also see migrating.
+ */
+ if (likely(rq == task_rq(p) && !task_on_rq_migrating(p))) {
+ return rq;
+@@ -952,9 +953,9 @@ static inline void __set_task_cpu(struct task_struct *p, unsigned int cpu)
+ smp_wmb();
+
+ #ifdef CONFIG_THREAD_INFO_IN_TASK
+- WRITE_ONCE(p->cpu, cpu);
++ p->cpu = cpu;
+ #else
+- WRITE_ONCE(task_thread_info(p)->cpu, cpu);
++ task_thread_info(p)->cpu = cpu;
+ #endif
+ #endif
+ }
+@@ -1035,7 +1036,7 @@ static void detach_task(struct rq *rq, struct task_struct *p, int target_cpu)
+ {
+ lockdep_assert_held(&rq->lock);
+
+- WRITE_ONCE(p->on_rq ,TASK_ON_RQ_MIGRATING);
++ p->on_rq = TASK_ON_RQ_MIGRATING;
+ if (task_contributes_to_load(p))
+ rq->nr_uninterruptible++;
+ dequeue_task(p, rq, 0);
+diff --git a/kernel/sched/pds_sched.h b/kernel/sched/pds_sched.h
+index 20dcf19ea057627d91be07b4ec20f0827c30084c..24fa90ca63d144cc4f45d82d88407ea70d2d2edf 100644
+--- a/kernel/sched/pds_sched.h
++++ b/kernel/sched/pds_sched.h
+@@ -56,7 +56,7 @@ static inline int task_on_rq_queued(struct task_struct *p)
+
+ static inline int task_on_rq_migrating(struct task_struct *p)
+ {
+- return READ_ONCE(p->on_rq) == TASK_ON_RQ_MIGRATING;
++ return p->on_rq == TASK_ON_RQ_MIGRATING;
+ }
+
+ enum {
+