commit: 88d0fe915b4b37dd7a93dab4a5f4fb8cfc0a315a Author: Arisu Tachibana <alicef <AT> gentoo <DOT> org> AuthorDate: Thu Jan 8 16:19:43 2026 +0000 Commit: Arisu Tachibana <alicef <AT> gentoo <DOT> org> CommitDate: Thu Jan 8 16:19:43 2026 +0000 URL: https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=88d0fe91
remove patch 1810 sched/proxy: Yield the donor task added upstream Ref: 0522222f2ac243ca69e245ab856ce6e047d09781 Signed-off-by: Arisu Tachibana <alicef <AT> gentoo.org> 0000_README | 4 - 1810_sched_proxy_yield_the_donor_task.patch | 118 ---------------------------- 2 files changed, 122 deletions(-) diff --git a/0000_README b/0000_README index dc5518b3..acaab5e7 100644 --- a/0000_README +++ b/0000_README @@ -71,10 +71,6 @@ Patch: 1730_parisc-Disable-prctl.patch From: https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git Desc: prctl: Temporarily disable prctl(PR_SET_MDWE) on parisc -Patch: 1810_sched_proxy_yield_the_donor_task.patch -From: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=127b90315ca07ccad2618db7ba950a63e3b32d22 -Desc: sched/proxy: Yield the donor task - Patch: 2000_BT-Check-key-sizes-only-if-Secure-Simple-Pairing-enabled.patch From: https://lore.kernel.org/linux-bluetooth/[email protected]/raw Desc: Bluetooth: Check key sizes only when Secure Simple Pairing is enabled. See bug #686758 diff --git a/1810_sched_proxy_yield_the_donor_task.patch b/1810_sched_proxy_yield_the_donor_task.patch deleted file mode 100644 index 381b96e5..00000000 --- a/1810_sched_proxy_yield_the_donor_task.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 127b90315ca07ccad2618db7ba950a63e3b32d22 Mon Sep 17 00:00:00 2001 -From: Fernand Sieber <[email protected]> -Date: Thu, 6 Nov 2025 12:40:10 +0200 -Subject: sched/proxy: Yield the donor task - -When executing a task in proxy context, handle yields as if they were -requested by the donor task. This matches the traditional PI semantics -of yield() as well. - -This avoids scenario like proxy task yielding, pick next task selecting the -same previous blocked donor, running the proxy task again, etc. - -Reported-by: kernel test robot <[email protected]> -Closes: https://lore.kernel.org/oe-lkp/[email protected] -Suggested-by: Peter Zijlstra <[email protected]> -Signed-off-by: Fernand Sieber <[email protected]> -Signed-off-by: Peter Zijlstra (Intel) <[email protected]> -Link: https://patch.msgid.link/[email protected] ---- - kernel/sched/deadline.c | 2 +- - kernel/sched/ext.c | 4 ++-- - kernel/sched/fair.c | 2 +- - kernel/sched/rt.c | 2 +- - kernel/sched/syscalls.c | 5 +++-- - 5 files changed, 8 insertions(+), 7 deletions(-) - -diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index 6b8a9286e2fca2..13112c680f9228 100644 ---- a/kernel/sched/deadline.c -+++ b/kernel/sched/deadline.c -@@ -2143,7 +2143,7 @@ static void yield_task_dl(struct rq *rq) - * it and the bandwidth timer will wake it up and will give it - * new scheduling parameters (thanks to dl_yielded=1). - */ -- rq->curr->dl.dl_yielded = 1; -+ rq->donor->dl.dl_yielded = 1; - - update_rq_clock(rq); - update_curr_dl(rq); -diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c -index b063444dc003f9..224b72c8e8da94 100644 ---- a/kernel/sched/ext.c -+++ b/kernel/sched/ext.c -@@ -1474,7 +1474,7 @@ static bool dequeue_task_scx(struct rq *rq, struct task_struct *p, int deq_flags - static void yield_task_scx(struct rq *rq) - { - struct scx_sched *sch = scx_root; -- struct task_struct *p = rq->curr; -+ struct task_struct *p = rq->donor; - - if (SCX_HAS_OP(sch, yield)) - SCX_CALL_OP_2TASKS_RET(sch, SCX_KF_REST, yield, rq, p, NULL); -@@ -1485,7 +1485,7 @@ static void yield_task_scx(struct rq *rq) - static bool yield_to_task_scx(struct rq *rq, struct task_struct *to) - { - struct scx_sched *sch = scx_root; -- struct task_struct *from = rq->curr; -+ struct task_struct *from = rq->donor; - - if (SCX_HAS_OP(sch, yield)) - return SCX_CALL_OP_2TASKS_RET(sch, SCX_KF_REST, yield, rq, -diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 273e2871b59e70..f1d8eb350f595f 100644 ---- a/kernel/sched/fair.c -+++ b/kernel/sched/fair.c -@@ -8980,7 +8980,7 @@ static void put_prev_task_fair(struct rq *rq, struct task_struct *prev, struct t - */ - static void yield_task_fair(struct rq *rq) - { -- struct task_struct *curr = rq->curr; -+ struct task_struct *curr = rq->donor; - struct cfs_rq *cfs_rq = task_cfs_rq(curr); - struct sched_entity *se = &curr->se; - -diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index 1fd97f2d7ec628..f1867fe8e5c535 100644 ---- a/kernel/sched/rt.c -+++ b/kernel/sched/rt.c -@@ -1490,7 +1490,7 @@ static void requeue_task_rt(struct rq *rq, struct task_struct *p, int head) - - static void yield_task_rt(struct rq *rq) - { -- requeue_task_rt(rq, rq->curr, 0); -+ requeue_task_rt(rq, rq->donor, 0); - } - - static int find_lowest_rq(struct task_struct *task); -diff --git a/kernel/sched/syscalls.c b/kernel/sched/syscalls.c -index 8f0f603b530bef..807879131add85 100644 ---- a/kernel/sched/syscalls.c -+++ b/kernel/sched/syscalls.c -@@ -1319,7 +1319,7 @@ static void do_sched_yield(void) - rq = this_rq_lock_irq(&rf); - - schedstat_inc(rq->yld_count); -- current->sched_class->yield_task(rq); -+ rq->donor->sched_class->yield_task(rq); - - preempt_disable(); - rq_unlock_irq(rq, &rf); -@@ -1388,12 +1388,13 @@ EXPORT_SYMBOL(yield); - */ - int __sched yield_to(struct task_struct *p, bool preempt) - { -- struct task_struct *curr = current; -+ struct task_struct *curr; - struct rq *rq, *p_rq; - int yielded = 0; - - scoped_guard (raw_spinlock_irqsave, &p->pi_lock) { - rq = this_rq(); -+ curr = rq->donor; - - again: - p_rq = task_rq(p); --- -cgit 1.2.3-korg -
