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
-

Reply via email to