diff --git a/PKGBUILD b/PKGBUILD index 2b218e4..4155a38 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -334,7 +334,7 @@ case $_basever in 'e00096244e5cddaa5500d08b5f692fd3f25be9401dfa3b0fc624625ff2f5e198' '62496f9ca788996181ef145f96ad26291282fcc3fb95cdc04080dcf84365be33' '31b428c464905e44ed61cdcd1f42b4ec157ebe5a44cb5b608c4c99b466df66ba' - 'fae7e3cd239022e5a13bdbed5cfbf31be4fed7c73fccf8e4156444f70be8f592' + '6c2c13a8c21e1ff4ca8396c3f70713e493c24da0711b27ab3cb77189760d04d4' 'fca63d15ca4502aebd73e76d7499b243d2c03db71ff5ab0bf5cf268b2e576320' '19661ec0d39f9663452b34433214c755179894528bf73a42f6ba52ccf572832a' 'b302ba6c5bbe8ed19b20207505d513208fae1e678cf4d8e7ac0b154e5fe3f456' @@ -342,7 +342,7 @@ case $_basever in '377d0eb1df251808b8280d1aec598b4a2986f7d167306cdec9048c337cdcf2e1' '9fad4a40449e09522899955762c8928ae17f4cdaa16e01239fd12592e9d58177' 'a557b342111849a5f920bbe1c129f3ff1fc1eff62c6bd6685e0972fc88e39911' - 'f4562c31658d7e18dbbfc3220bc5350fc896e6d338714420533a3df8642778d1' + '1a1b9470949e82446b9888d6eccaea5e98b61ec2e12b13fc6d23ff4134dce92d' '105f51e904d80f63c1421203e093b612fc724edefd3e388b64f8d371c0b3a842' '7fb1104c167edb79ec8fbdcde97940ed0f806aa978bdd14d0c665a1d76d25c24') ;; @@ -597,7 +597,7 @@ case $_basever in '034d12a73b507133da2c69a34d61efd2f6b6618549650aa26d748142d22002e1' '9fad4a40449e09522899955762c8928ae17f4cdaa16e01239fd12592e9d58177' 'a557b342111849a5f920bbe1c129f3ff1fc1eff62c6bd6685e0972fc88e39911' - '2e2247183034fa4a2ea1cd943d3d24ee9ea52daf70d47e69d5564f8ac1367aa2' + '1565038792869f1e99dc321b57d00dbfa14ab824a995f39c4d3effceab0b5415' '80a965ee61357c8f0a697eb71225976b7e352d4e54d9e576d3a1779d2a06714a' '1b656ad96004f27e9dc63d7f430b50d5c48510d6d4cd595a81c24b21adb70313' 'b0319a7dff9c48b2f3e3d3597ee154bf92223149a633a8b7ce4026252db86da6') diff --git a/linux-tkg-patches/5.10/0005-v5.10_undead-pds099o.patch b/linux-tkg-patches/5.10/0005-v5.10_undead-pds099o.patch index 8e2c595..eaed11a 100644 --- a/linux-tkg-patches/5.10/0005-v5.10_undead-pds099o.patch +++ b/linux-tkg-patches/5.10/0005-v5.10_undead-pds099o.patch @@ -8725,3 +8725,62 @@ index b5e3496cf803..0816db0b9c16 100644 }; struct wakeup_test_data *x = data; +diff --git a/kernel/sched/pds.c b/kernel/sched/pds.c +index 9576c57f82da0a1f831b02474db8cd64b945f294..b8d5b1db9fac55ce5ee74033c253832cc36999b6 100644 +--- a/kernel/sched/pds.c ++++ b/kernel/sched/pds.c +@@ -2912,10 +2912,7 @@ static inline void __sched_fork(unsigned long clone_flags, struct task_struct *p + */ + int sched_fork(unsigned long __maybe_unused clone_flags, struct task_struct *p) + { +- unsigned long flags; + int cpu = get_cpu(); +- struct rq *rq = this_rq(); +- + #ifdef CONFIG_PREEMPT_NOTIFIERS + INIT_HLIST_HEAD(&p->preempt_notifiers); + #endif +@@ -2948,6 +2945,20 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p) + p->sched_reset_on_fork = 0; + } + ++#ifdef CONFIG_SCHED_INFO ++ if (unlikely(sched_info_on())) ++ memset(&p->sched_info, 0, sizeof(p->sched_info)); ++#endif ++ init_task_preempt_count(p); ++ ++ return 0; ++} ++ ++void sched_post_fork(struct task_struct *p, struct kernel_clone_args *kargs) ++{ ++ unsigned long flags; ++ struct rq *rq; ++ + /* + * The child is not yet in the pid-hash so no cgroup attach races, + * and the cgroup is pinned to this child due to cgroup_fork() +@@ -2982,21 +2993,10 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p) + * We're setting the CPU for the first time, we don't migrate, + * so use __set_task_cpu(). + */ +- __set_task_cpu(p, cpu); ++ __set_task_cpu(p, smp_processor_id()); + raw_spin_unlock_irqrestore(&p->pi_lock, flags); +- +-#ifdef CONFIG_SCHED_INFO +- if (unlikely(sched_info_on())) +- memset(&p->sched_info, 0, sizeof(p->sched_info)); +-#endif +- init_task_preempt_count(p); +- +- put_cpu(); +- return 0; + } + +-void sched_post_fork(struct task_struct *p) {} +- + #ifdef CONFIG_SCHEDSTATS + + DEFINE_STATIC_KEY_FALSE(sched_schedstats); diff --git a/linux-tkg-patches/5.10/0009-prjc_v5.10-r3.patch b/linux-tkg-patches/5.10/0009-prjc_v5.10-r3.patch index e805407..29f9b8f 100644 --- a/linux-tkg-patches/5.10/0009-prjc_v5.10-r3.patch +++ b/linux-tkg-patches/5.10/0009-prjc_v5.10-r3.patch @@ -8647,3 +8647,60 @@ index 6f28b8b11ead..ff8d546ab885 100644 }; struct wakeup_test_data *x = data; +diff --git a/kernel/sched/alt_core.c b/kernel/sched/alt_core.c +index 9576c57f82da0a1f831b02474db8cd64b945f294..b8d5b1db9fac55ce5ee74033c253832cc36999b6 100644 +--- a/kernel/sched/alt_core.c ++++ b/kernel/sched/alt_core.c +@@ -2912,9 +2912,6 @@ static inline void __sched_fork(unsigned long clone_flags, struct task_struct *p + */ + int sched_fork(unsigned long clone_flags, struct task_struct *p) + { +- unsigned long flags; +- struct rq *rq; +- + __sched_fork(clone_flags, p); + /* + * We mark the process as NEW here. This guarantees that +@@ -2948,6 +2945,20 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p) + p->sched_reset_on_fork = 0; + } + ++#ifdef CONFIG_SCHED_INFO ++ if (unlikely(sched_info_on())) ++ memset(&p->sched_info, 0, sizeof(p->sched_info)); ++#endif ++ init_task_preempt_count(p); ++ ++ return 0; ++} ++ ++void sched_post_fork(struct task_struct *p, struct kernel_clone_args *kargs) ++{ ++ unsigned long flags; ++ struct rq *rq; ++ + /* + * The child is not yet in the pid-hash so no cgroup attach races, + * and the cgroup is pinned to this child due to cgroup_fork() +@@ -2982,20 +2993,10 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p) + * We're setting the CPU for the first time, we don't migrate, + * so use __set_task_cpu(). + */ +- __set_task_cpu(p, cpu_of(rq)); ++ __set_task_cpu(p, smp_processor_id()); + raw_spin_unlock_irqrestore(&p->pi_lock, flags); +- +-#ifdef CONFIG_SCHED_INFO +- if (unlikely(sched_info_on())) +- memset(&p->sched_info, 0, sizeof(p->sched_info)); +-#endif +- init_task_preempt_count(p); +- +- return 0; + } + +-void sched_post_fork(struct task_struct *p) {} +- + #ifdef CONFIG_SCHEDSTATS + + DEFINE_STATIC_KEY_FALSE(sched_schedstats); diff --git a/linux-tkg-patches/5.14/0009-prjc_v5.14-r3.patch b/linux-tkg-patches/5.14/0009-prjc_v5.14-r3.patch index 99adff7..35e5e68 100644 --- a/linux-tkg-patches/5.14/0009-prjc_v5.14-r3.patch +++ b/linux-tkg-patches/5.14/0009-prjc_v5.14-r3.patch @@ -9510,3 +9510,60 @@ index adf7ef194005..11c8f36e281b 100644 }; struct wakeup_test_data *x = data; +diff --git a/kernel/sched/alt_core.c b/kernel/sched/alt_core.c +index 9576c57f82da0a1f831b02474db8cd64b945f294..b8d5b1db9fac55ce5ee74033c253832cc36999b6 100644 +--- a/kernel/sched/alt_core.c ++++ b/kernel/sched/alt_core.c +@@ -2912,9 +2912,6 @@ static inline void __sched_fork(unsigned long clone_flags, struct task_struct *p + */ + int sched_fork(unsigned long clone_flags, struct task_struct *p) + { +- unsigned long flags; +- struct rq *rq; +- + __sched_fork(clone_flags, p); + /* + * We mark the process as NEW here. This guarantees that +@@ -2948,6 +2945,20 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p) + p->sched_reset_on_fork = 0; + } + ++#ifdef CONFIG_SCHED_INFO ++ if (unlikely(sched_info_on())) ++ memset(&p->sched_info, 0, sizeof(p->sched_info)); ++#endif ++ init_task_preempt_count(p); ++ ++ return 0; ++} ++ ++void sched_post_fork(struct task_struct *p, struct kernel_clone_args *kargs) ++{ ++ unsigned long flags; ++ struct rq *rq; ++ + /* + * The child is not yet in the pid-hash so no cgroup attach races, + * and the cgroup is pinned to this child due to cgroup_fork() +@@ -2982,20 +2993,10 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p) + * We're setting the CPU for the first time, we don't migrate, + * so use __set_task_cpu(). + */ +- __set_task_cpu(p, cpu_of(rq)); ++ __set_task_cpu(p, smp_processor_id()); + raw_spin_unlock_irqrestore(&p->pi_lock, flags); +- +-#ifdef CONFIG_SCHED_INFO +- if (unlikely(sched_info_on())) +- memset(&p->sched_info, 0, sizeof(p->sched_info)); +-#endif +- init_task_preempt_count(p); +- +- return 0; + } + +-void sched_post_fork(struct task_struct *p) {} +- + #ifdef CONFIG_SCHEDSTATS + + DEFINE_STATIC_KEY_FALSE(sched_schedstats);