Compare commits

..

No commits in common. "b665a08ff1008296eb23c6abbce3df042e899c9f" and "ebf5245411b6813184036ced5e16372479c60f73" have entirely different histories.

10 changed files with 170 additions and 3 deletions

View File

@ -1,9 +1,12 @@
DIST genpatches-5.10-1.base.tar.xz 3840 BLAKE2B 08ac1f83dc9a1cfc1d4cf0a3a5ab4c9d4686a80348247ec7cd1da6e49db92d6932a1864113f2631d5528a4ba732945b2afe73d03061bd3c532b3d1e4d9571999 SHA512 04356093c4df6a7ee0876b89be5b90f8bc90c920628e5fe69b5787ce82e003be05eaac142310f10f32d0549a6676af846734ae4ac188c2b96c2eca2cb0a6f4b0
DIST genpatches-5.10-1.extras.tar.xz 1768 BLAKE2B e99d5d2137d5752845ba8284a0dd57620851c3620603e871973af5841b54e9bfdde92ea2408ddedb55355f2c954c80641b06098060043916d2483e10cfb8293a SHA512 0034e5ab57cccb2e969a3b9e1f674614ca853779c552c37be9c5afb0a37112bf8f2c30e1b21832d56320c70c1d622081b60369c6a86fa737a23c3ed953267453
DIST genpatches-5.11-1.base.tar.xz 3440 BLAKE2B eb1e9a9f2060023cb410bf3db8c4f4fe283eff47f545a434dfc1edb98aa513940f30a2a88566422192b79f7ab36c607b9bc63253c067070d9a479d6318fd34b3 SHA512 a862fe33272bb6b0e4095c862c74361f015fc57316b9dbbdf2782f2e57c131fbe7fe9b9ba81c3d5a7d71788f2d56abdbd28f1c7571973c3f378cd05199c0421f
DIST genpatches-5.11-1.extras.tar.xz 1772 BLAKE2B e6f8eae67db54099424f33e17bbfa66d36ae44c98d5f58969634a709a4b949a675a7ec1053eab4db4f745513d9730b68439ecf888e92f0fc9ef369822b39a388 SHA512 cf9d0ee27618b1b49322cefda8d85f66fd94820b9902948c8dd9a33d4e14acf511e7aabf611df5e070a4011e06d80164a512d124f5686b5b16fd81409098d8eb
DIST linux-5.10.tar.xz 116606704 BLAKE2B b923d7b66309224f42f35f8a5fa219421b0a9362d2adacdadd8d96251f61f7230878ea297a269a7f3b3c56830f0b177e068691e1d7f88501a05653b0a13274d1 SHA512 95bc137d0cf9148da6a9d1f1a878698dc27b40f68e22c597544010a6c591ce1b256f083489d3ff45ff77753289b535135590194d88ef9f007d0ddab3d74de70e
DIST linux-5.11.tar.xz 117619104 BLAKE2B 81300c27bd5476387a83123aaeb4163c73eb61e9245806c23660cb5e6a4fa88ffc9def027031335fa0270fc4080506cd415990014364e3a98b9d2e8c58a29524 SHA512 a567ec133018bb5ec00c60281479b466c26e02137a93a9c690e83997947df02b6fd94e76e8df748f6d70ceb58a19bacc3b1467de10b7a1fad2763db32b3f1330
DIST v5.10.17-lqx1.patch.xz 663712 BLAKE2B bedecf8374be91f54279561c06170e991c0aa1b576049bf3796ced38ec90dbab774348a403bf4db8bbb06c9704172b5520fbed5462afaf5f6d85b7331d66b578 SHA512 9b1cc517e81a366c5da5c721dd409c7a5d8347e801285559db7bb04e614645c2e27a11ece838e29be9cbd722444a9132270bee0c44259a8f37764bc8bee510ce
DIST v5.11.1-lqx1.patch.xz 169392 BLAKE2B 68011ef65da7b4209b1693d2fb135953a7f058006f9e4349b76a28c25f2ef9f18a8aa33ede42a68cec5d406592ae39fcc3d3cba052237e878ef2475c64bf42cb SHA512 7935dd78517574eb40454823e6275d683764f0b7599b76e7de9bf457ee502f2ede639dbe63b5e5c57e4d626d2dc1154433cf3f9c5b93a474922ca8d4e4cbe134
DIST v5.11.2-lqx1.patch.xz 172692 BLAKE2B 2412b22eddf7adb9ad5113ae534dac7f8d79d91d6c6c1614f8bbca01f7b56cddb961fdf21e54e6b22ff3c9842c141004dfba6b04d7343b755214b48a99077082 SHA512 fcee31a48107dae8f00128d81cf5f647a91231c83293b8e9a79eb1d869e1c923c61de350ff2941a74ae3c7f4f18c3f9815160eaa3c6afb3fc7e47d4b8d82ba7d
DIST v5.11.3-lqx1.patch.xz 394620 BLAKE2B d248961e69c98cc609c3ba10e52f163b1e3814513bb5af861bc3a53fda9ada72bd977c6ccc4d3e78926b1ad4980b0d37576fa75c40541952e6616b1adf715587 SHA512 ee319057a64498e7352e73250173b23cbe2680fecf22af43ef9b78b920655038cde1d552c2470d09e666fc3f723700e88221e23eed77cf9fe7ba43b48ab2aa13
DIST v5.11.4-lqx1.patch.xz 436512 BLAKE2B 63b6fff4d4e17898988ea79fc63b6441d80cefbc42800ca358b3fc1b4f020818f703f840f39f44bfc4eed6b4e66324af15b8cb5d096bed6ee58f6e93e680c057 SHA512 b7b923cebfcea4c0fb6dbd6c649504374be756c035a340885ff6ee34e8e4d5c7feacc522a50acfabfe343e4579b159054dd64998f012838aa3ed7dc526808b4b
DIST v5.11.6-lqx1.patch.xz 453856 BLAKE2B 1ba9a45790e3589f034ab7670e2b9c7c9ac4f9d19e9104dfdd5db51b18a9624dd2873c2151d321721111448ede3decf824bc26be3293d5f614a0a97061e45d50 SHA512 d01df7b56ded00a75aa596064c9e94f3ac0edf5919a5a5e47b63649d0a2779d8f2fcbc4a2d98e8717cd5c74489d48c897b65560c913d80b5798ba348211b7c92
DIST v5.11.8-lqx1.patch.xz 547696 BLAKE2B 373f69b2fb757d32fba900880262575e9e867f2e0a2e7c3c07c3926cdc18615739ea9d7cac30cb212a03536584b86b14341438f67ea57468237a1c022643ac62 SHA512 93897b4163b01333d2b3c11dfbd3ddbf91aa4520a3087057df82c5dc6918ee7602879208535fec8d085698bcdf50668cb9808443346aa1b2f2b89c90fd437448

View File

@ -1,9 +1,9 @@
DIST genpatches-5.11-1.base.tar.xz 3440 BLAKE2B eb1e9a9f2060023cb410bf3db8c4f4fe283eff47f545a434dfc1edb98aa513940f30a2a88566422192b79f7ab36c607b9bc63253c067070d9a479d6318fd34b3 SHA512 a862fe33272bb6b0e4095c862c74361f015fc57316b9dbbdf2782f2e57c131fbe7fe9b9ba81c3d5a7d71788f2d56abdbd28f1c7571973c3f378cd05199c0421f
DIST genpatches-5.11-1.extras.tar.xz 1772 BLAKE2B e6f8eae67db54099424f33e17bbfa66d36ae44c98d5f58969634a709a4b949a675a7ec1053eab4db4f745513d9730b68439ecf888e92f0fc9ef369822b39a388 SHA512 cf9d0ee27618b1b49322cefda8d85f66fd94820b9902948c8dd9a33d4e14acf511e7aabf611df5e070a4011e06d80164a512d124f5686b5b16fd81409098d8eb
DIST linux-5.11.tar.xz 117619104 BLAKE2B 81300c27bd5476387a83123aaeb4163c73eb61e9245806c23660cb5e6a4fa88ffc9def027031335fa0270fc4080506cd415990014364e3a98b9d2e8c58a29524 SHA512 a567ec133018bb5ec00c60281479b466c26e02137a93a9c690e83997947df02b6fd94e76e8df748f6d70ceb58a19bacc3b1467de10b7a1fad2763db32b3f1330
DIST patch-5.11.0-xanmod1.xz 110924 BLAKE2B 1a8ba61a55a8111e836383a0df5e45649d67352128e13001a66cb223f4fb378b4c9f686cd74da0f3baf93551a665a1284f563331a3ecdb683252960fbc979c28 SHA512 c32eb1817ff42906d7b5986a8771f1213f908b4aa74736faf673291550a3def97a99064e2ccadcb75d250f20b1df3a84002d15b475a9ea7deccdc17dc267f0c3
DIST patch-5.11.1-xanmod1.xz 115624 BLAKE2B ac78602a0163c22f5b3e63a4c0c190e5ed01ec8a46653ec73bf1b656833e701867f77d38458f475ac194c8538f9290ef884c5b33e6736860f5ab751bb1396f77 SHA512 8c67006af22b69702ffd2de62fec6a202d824313e9e3d6516bb8c83bffd1125507b5cbcaebdd002a09f92492a47051755f71bd8576cdb717d5284a4dcec4f5cb
DIST patch-5.11.2-xanmod1.xz 119096 BLAKE2B 065240dbe21286bf3f3d146cc8bb19d253796ec0e8a2089c0c080fa3ca1aaecaaf1ffe7a5c60a3a8621df5018af4ae6e684655647e66a542ce09a62c6e8a276e SHA512 fd2744e2b6b07ceeac345dce48ffd03e3e815792446aafdf7d8c18101e159c69e4e9e5f6bca949b2a68a7b922004620f8b8c89590612b50d3fec54de590f5025
DIST patch-5.11.3-xanmod1.xz 362932 BLAKE2B 100724d51a3d907aefb3be32255e1f1b0945a37155ed626dc784704fa5f494783a5cee48c2e92d008fa5a9302edee960011558215e4b3d39375d6a2da5e01390 SHA512 7f3f2299fb5b9e17ff921005940beba8f9459ebe286a3c3b081d4a18e0048ccd990ad2ad80ab35d456debcaa5367e08392670b8df4f3004df9fa49164a934e75
DIST patch-5.11.4-xanmod1.xz 396208 BLAKE2B 7b7b48d0724b88fbd3bce1cc3560645a5739adae2b076f96dd189012da1a123a734519eb145476fe1acdb2657164bd2f03dd4871a791f678bb2aed97a9d1c89b SHA512 4197bfc171c38d943a5fbbe4d0a2bcca00a7a4d79ff8203e07c6e1646576324ee2af29ba2eb7bd0af7a20b3b035c979fc59fbeb1bc519517ebf4c4dd31f52ebf
DIST patch-5.11.6-xanmod1.xz 422076 BLAKE2B d43e08ba81322ea9023fb716a4dfe015a950a4d22723385f43af3efe6511c50a71ff2b4be26903787be1e9c2f212c6e4ba785076bf585a628072b95476cf0c33 SHA512 8ab709e83a12a8ad0b444b8fbe464dc1a3e44e6fbdb4700150dc755d3088ea47ab1d3c3dda337e7c064d8b3f905869c38238dcf0e082b18dd3badb7fb7f1e1c9
DIST patch-5.11.8-xanmod1.xz 659756 BLAKE2B 076f45f24f1d098e444f9ac86ca3ef21ab1643ea6b8fb0ab1714db31ba29a6f053bf562fa3e71e4dba1fd86f8363966e3c2b198e20b7a6600bf999d98ca8c79c SHA512 b77b21fd35dbafe5535f2f9b1c4a71b333fa93b1af49ba520bebeaae5b525140a2c53f653960079504fd36352c16cb3b0eb9780310d9f01ca6d469d2f25e35e7

View File

@ -0,0 +1,94 @@
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 335efc1c6f06..f81f2f38659e 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -43,6 +43,7 @@ unsigned int sysctl_sched_latency = 6000000ULL;
static unsigned int normalized_sysctl_sched_latency = 6000000ULL;
#ifdef CONFIG_CACULE_SCHED
+int cacule_max_lifetime = 30000; // in ms
int interactivity_factor = 32768;
#endif
@@ -591,22 +592,25 @@ static void update_min_vruntime(struct cfs_rq *cfs_rq)
static inline unsigned int
calc_interactivity(u64 now, struct cacule_node *se)
{
- u64 l_se, vr_se, sleep_se, u64_factor;
+ u64 l_se, vr_se, sleep_se = 1ULL, u64_factor;
unsigned int score_se;
/*
* in case of vruntime==0, logical OR with 1 would
* make sure that the least sig. bit is 1
*/
- l_se = (now + 1ULL) - se->cacule_start_time;
+ l_se = now - se->cacule_start_time;
vr_se = se->vruntime | 1;
- sleep_se = (l_se - vr_se) | 1;
u64_factor = interactivity_factor;
- if (sleep_se > vr_se)
+ /* safety check */
+ if (likely(l_se > vr_se))
+ sleep_se = (l_se - vr_se) | 1;
+
+ if (sleep_se >= vr_se)
score_se = u64_factor / (sleep_se / vr_se);
else
- score_se = (u64_factor / (vr_se / sleep_se)) + u64_factor;
+ score_se = (u64_factor << 1) - (u64_factor / (vr_se / sleep_se));
return score_se;
}
@@ -964,6 +968,42 @@ static void update_tg_load_avg(struct cfs_rq *cfs_rq, int force)
}
#endif /* CONFIG_SMP */
+#ifdef CONFIG_CACULE_SCHED
+static void reset_lifetime(u64 now, struct sched_entity *se)
+{
+ struct cacule_node *cn;
+ u64 max_life_ns, life_time;
+ s64 diff;
+
+ /*
+ * left shift 20 bits is approximately = * 1000000
+ * we don't need the precision of life time
+ * Ex. for 30s, with left shift (20bits) == 31.457s
+ */
+ max_life_ns = ((u64) cacule_max_lifetime) << 20;
+
+ for_each_sched_entity(se) {
+ cn = &se->cacule_node;
+ life_time = now - cn->cacule_start_time;
+ diff = life_time - max_life_ns;
+
+ if (unlikely(diff > 0)) {
+ // multiply life_time by 8 for more precision
+ u64 old_hrrn_x8 = life_time / ((cn->vruntime >> 3) | 1);
+
+ // reset life to half max_life (i.e ~15s)
+ cn->cacule_start_time = now - (max_life_ns >> 1);
+
+ // avoid division by zero
+ if (old_hrrn_x8 == 0) old_hrrn_x8 = 1;
+
+ // reset vruntime based on old hrrn ratio
+ cn->vruntime = (max_life_ns << 2) / old_hrrn_x8;
+ }
+ }
+}
+#endif /* CONFIG_CACULE_SCHED */
+
/*
* Update the current task's runtime statistics.
*/
@@ -991,6 +1031,7 @@ static void update_curr(struct cfs_rq *cfs_rq)
#ifdef CONFIG_CACULE_SCHED
curr->cacule_node.vruntime += calc_delta_fair(delta_exec, curr);
+ reset_lifetime(sched_clock(), curr);
#else
curr->vruntime += calc_delta_fair(delta_exec, curr);
update_min_vruntime(cfs_rq);

View File

@ -0,0 +1,5 @@
--- a/localversion 2020-12-18 17:19:14.185240837 +0100
+++ b/localversion 2020-12-18 17:21:26.537235004 +0100
@@ -1 +1 @@
--xanmod1-cacule
+-xanmod1

View File

@ -0,0 +1,15 @@
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 957e418f05f7..335efc1c6f06 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -6996,8 +6996,10 @@ static void migrate_task_rq_fair(struct task_struct *p, int new_cpu)
/* Tell new CPU we are migrated */
p->se.avg.last_update_time = 0;
+#if !defined(CONFIG_CACULE_SCHED)
/* We have migrated, no longer consider this task hot */
p->se.exec_start = 0;
+#endif
update_scan_period(p, new_cpu);
}

View File

@ -0,0 +1,47 @@
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 957e418f05f..8f2b1a9d0f1 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -44,6 +44,7 @@ static unsigned int normalized_sysctl_sched_latency = 6000000ULL;
#ifdef CONFIG_CACULE_SCHED
int interactivity_factor = 32768;
+#define MAX_LIFE_TIME_SMOOTHER 10000000000ULL // 10 seconds
#endif
/*
@@ -592,15 +593,15 @@ static inline unsigned int
calc_interactivity(u64 now, struct cacule_node *se)
{
u64 l_se, vr_se, sleep_se, u64_factor;
- unsigned int score_se;
+ unsigned int score_se, lifetime_smoother;
/*
* in case of vruntime==0, logical OR with 1 would
* make sure that the least sig. bit is 1
*/
l_se = (now + 1ULL) - se->cacule_start_time;
- vr_se = se->vruntime | 1;
- sleep_se = (l_se - vr_se) | 1;
+ vr_se = se->vruntime | 1;
+ sleep_se = (l_se - vr_se) | 1;
u64_factor = interactivity_factor;
if (sleep_se > vr_se)
@@ -608,7 +609,14 @@ calc_interactivity(u64 now, struct cacule_node *se)
else
score_se = (u64_factor / (vr_se / sleep_se)) + u64_factor;
- return score_se;
+ if (l_se > MAX_LIFE_TIME_SMOOTHER)
+ return score_se;
+
+ u64_factor <<= 1;
+ lifetime_smoother =
+ u64_factor - (u64_factor / (MAX_LIFE_TIME_SMOOTHER / (l_se | 1)));
+
+ return score_se + lifetime_smoother;
}
/*

View File

@ -1,9 +1,12 @@
DIST genpatches-5.10-1.base.tar.xz 3840 BLAKE2B 08ac1f83dc9a1cfc1d4cf0a3a5ab4c9d4686a80348247ec7cd1da6e49db92d6932a1864113f2631d5528a4ba732945b2afe73d03061bd3c532b3d1e4d9571999 SHA512 04356093c4df6a7ee0876b89be5b90f8bc90c920628e5fe69b5787ce82e003be05eaac142310f10f32d0549a6676af846734ae4ac188c2b96c2eca2cb0a6f4b0
DIST genpatches-5.10-1.extras.tar.xz 1768 BLAKE2B e99d5d2137d5752845ba8284a0dd57620851c3620603e871973af5841b54e9bfdde92ea2408ddedb55355f2c954c80641b06098060043916d2483e10cfb8293a SHA512 0034e5ab57cccb2e969a3b9e1f674614ca853779c552c37be9c5afb0a37112bf8f2c30e1b21832d56320c70c1d622081b60369c6a86fa737a23c3ed953267453
DIST genpatches-5.11-1.base.tar.xz 3440 BLAKE2B eb1e9a9f2060023cb410bf3db8c4f4fe283eff47f545a434dfc1edb98aa513940f30a2a88566422192b79f7ab36c607b9bc63253c067070d9a479d6318fd34b3 SHA512 a862fe33272bb6b0e4095c862c74361f015fc57316b9dbbdf2782f2e57c131fbe7fe9b9ba81c3d5a7d71788f2d56abdbd28f1c7571973c3f378cd05199c0421f
DIST genpatches-5.11-1.extras.tar.xz 1772 BLAKE2B e6f8eae67db54099424f33e17bbfa66d36ae44c98d5f58969634a709a4b949a675a7ec1053eab4db4f745513d9730b68439ecf888e92f0fc9ef369822b39a388 SHA512 cf9d0ee27618b1b49322cefda8d85f66fd94820b9902948c8dd9a33d4e14acf511e7aabf611df5e070a4011e06d80164a512d124f5686b5b16fd81409098d8eb
DIST linux-5.10.tar.xz 116606704 BLAKE2B b923d7b66309224f42f35f8a5fa219421b0a9362d2adacdadd8d96251f61f7230878ea297a269a7f3b3c56830f0b177e068691e1d7f88501a05653b0a13274d1 SHA512 95bc137d0cf9148da6a9d1f1a878698dc27b40f68e22c597544010a6c591ce1b256f083489d3ff45ff77753289b535135590194d88ef9f007d0ddab3d74de70e
DIST linux-5.11.tar.xz 117619104 BLAKE2B 81300c27bd5476387a83123aaeb4163c73eb61e9245806c23660cb5e6a4fa88ffc9def027031335fa0270fc4080506cd415990014364e3a98b9d2e8c58a29524 SHA512 a567ec133018bb5ec00c60281479b466c26e02137a93a9c690e83997947df02b6fd94e76e8df748f6d70ceb58a19bacc3b1467de10b7a1fad2763db32b3f1330
DIST v5.10.14-zen1.patch.xz 655668 BLAKE2B efd0d1d0e95f556a69e64379a079c776fa2e9000f5d9274d998b8dd3ab2f0f7be2173fb716468e2b901c7f5ae64b5660639b7ad58818208d5af5270aa5dbdc33 SHA512 e51bd453f33a4070c19c0d2180df6bdb9379bb6a14543a98d1b7a51cd421ad47ef391b4ee9993450c607d16dc41e63f10a3265640e09b59c42ad88d5bd35b937
DIST v5.11-zen1.patch.xz 65512 BLAKE2B daa2d6f88e99dea76882f9e66046ccc54620ad3aa07bbf54987f92fefad051465bdfaefd53ca9603f9090b2c35e9a13a24b2d11a92c5c2b252c9e5acda231069 SHA512 e651745f947e589acfa86e1513fa2784d150500697182bd16a4eb35352d7d0f8515ede7b6e1cba9af8ced93c5a6cdb739023365159a62cb2b2b8acc6cb08b3ea
DIST v5.11.2-zen1.patch.xz 177868 BLAKE2B 6c2fcb87c5d27353954b67f67c579c264c3a1eab382a60858fb294f773860c67f7183f153747ddde29958ad87a59043a4a8c38459938ef2788c65a8be2e1dc9c SHA512 70c5fa9de76259eaeb6db918dbd9aef029f2397c63195b636f48e31362344371bf5a228233deba3a5cf8ac791527e8f6575f0c353cfb3b4f3954587c0f5b1978
DIST v5.11.3-zen1.patch.xz 418348 BLAKE2B d9970ca6ee2511903ebfbcdd71ae5c5c730cff7a438110ed2a472df272fea48c31f4e03ac041aaf2d788af9f2465d9c5f6f5d6a7c9d0b21a3aff300a223a1313 SHA512 0d24416a920d74c88e64f8c0427d87aeb83937f7b941c6d9aa2b1fdc3180e92b389ca68b7985d814dfad776e597dc0da1b96bf968f6c8ef5ed4590dbcb48c59c
DIST v5.11.4-zen1.patch.xz 453736 BLAKE2B c32ad6702ebf72c0aa646df3e0bb1646ca59815a44d15d62627566ea38fd7efd5add0015c2368b81e85f08cd7a8bec627a82778e76611e3598b5da6f12ebbc71 SHA512 407223384c6dbeefc5b93f4aaf76056738e1015dfdc83a6b7c54df45c3c2d32b3cedcc898f180f63f5323de8f138d2352b67d31592c7525417e6d72c70fb11f2
DIST v5.11.6-zen1.patch.xz 481760 BLAKE2B 2277cc0e5d02b1d81066ca943e9107d6e8f3788cbdfdf4dd0ec6c6642d74ed799d927c39927bc4e6eeebcf277f4e9aca447c3bdd310949b1d056f8e88f02611b SHA512 40eecea09328728aa4b953f9e696e23082f081ce92e38bcd02373346cfe6c9d524e7122ac3f5e34f867cb1c02f2830b3fa635deed5520d191535af4272f158a3
DIST v5.11.8-zen1.patch.xz 586640 BLAKE2B 436c01795f38a6a87dd44260809d1078b5714cdd18a0ea661ffc01b1d634538a3d3edfee07464220e1c28597c4f56908eac8a6ba63f0b94eb1609518ecd69433 SHA512 4875a4d15f165be39cecc398f1d2fb10a18e614a875b45bfbc7c55f03d91915cfb059e0d209fbe9a405620087b314938588c6a9b9459251039d5872a02505a7f