diff options
Diffstat (limited to 'sys-kernel/zen-sources')
| -rw-r--r-- | sys-kernel/zen-sources/Manifest | 14 | ||||
| -rw-r--r-- | sys-kernel/zen-sources/files/0001-sched-proxy-Yield-the-donor-task.patch | 119 | ||||
| -rw-r--r-- | sys-kernel/zen-sources/zen-sources-6.18.2.ebuild (renamed from sys-kernel/zen-sources/zen-sources-6.17.8.ebuild) | 10 | ||||
| -rw-r--r-- | sys-kernel/zen-sources/zen-sources-6.18.3.ebuild (renamed from sys-kernel/zen-sources/zen-sources-6.17.9.ebuild) | 23 | ||||
| -rw-r--r-- | sys-kernel/zen-sources/zen-sources-6.18.ebuild | 55 |
5 files changed, 147 insertions, 74 deletions
diff --git a/sys-kernel/zen-sources/Manifest b/sys-kernel/zen-sources/Manifest index b66cd4192473..397d7c03cf08 100644 --- a/sys-kernel/zen-sources/Manifest +++ b/sys-kernel/zen-sources/Manifest @@ -1,9 +1,7 @@ -DIST genpatches-6.17-9.base.tar.xz 442020 BLAKE2B 0585fd0b7f4966a40a76eb9daec6aaa67c86ba8255847ecc9cbd35fa2be94983e3ac0949e9bffbe19d750484ee608e83b690cd5255921a87204a466fa4150c69 SHA512 2e96ab14c9c3e7ee4e5094a3a28ea41c57c6e40c294ca2172ddc2d0ba21ab271ed31fa2fe69d5465d8ae919b161ab09c8a0713385c5ed02d4fd65685a269038e -DIST genpatches-6.17-9.extras.tar.xz 4064 BLAKE2B fd6b203b8c5981a1140281a66f61c83f471c943dbddf83121dd575ce5e481c6eb8375f001cb09d7640b0f71f615ff3d14a699177ef2fe437ca8324db87d112bb SHA512 479a382a958a66f7c1c4579761fa71a5de80a5b97c90a587c82afa7e3fcd0b24ecc7c0ac6c9ec07292042c86a147b4888a4737729ffeb07278492061d281868a -DIST genpatches-6.18-1.base.tar.xz 12736 BLAKE2B 5b7b6c7529510e217844debddb9297827c2d32f23be4745f23b14e087ec898ae6b8f22bb24a8cc23786dcf746ea68a6a12e48fa9280c2882027f1c7a505077d9 SHA512 f00d8b3e0db9e1878cd6ba77936b6a4a3d6c74e69ce5a1d7666dfb45ff8d33b55089ea2e63ca8fa29b4821c00d2425cb205b2d4b45d28ff5bae52276144de409 -DIST genpatches-6.18-1.extras.tar.xz 4324 BLAKE2B b9d4fe05d9ffa2642a62280aa67227971b00b878a190b03db1d46f0e7564e759702950440c35bfab077cc690315efb14bcd1f49cc5ae0ebabed4782d9aa58392 SHA512 8a0b46484272cc7fc771b3353c76b1d211aab430d57822b8946db22be3af2f206afd3eb59ea92e5a9e86a325d444f8f49c9b10cfd5275adc58848c0a41a2778c -DIST linux-6.17.tar.xz 153382068 BLAKE2B 0edb2324be5638aa75984128aafdba3e50824187d2fcdff8794eab99d85c10c3a17d1e840053c2c83df5ee11fdf69f1c9452c57ecc9dae01c4af38180fe7821a SHA512 063999d7b819970657f6b7713fdb4173da2065ffdeed7cae197026dbb1edfd7f1d50374f073a1e19ef9686539594824ff6ecb8a930d97c4f272cb12f1c6d8355 +DIST genpatches-6.18-3.base.tar.xz 210740 BLAKE2B 57beb2179632cfea1af1750b18b060605fcc3ad524d214d4b6c27a4814e38e478e073430214e57ec110ff93f9c63eb12e11cf82cc287f671e6348e912e3218ff SHA512 668f56e01f4cf69d7014c81d411b6ab7ac748a15d854a2e8ed28a7e87deb28193b836f5510abb32ba75fcfdb558f73c1dbda8bcd6e0f5bd943e6df3775ac17da +DIST genpatches-6.18-3.extras.tar.xz 4324 BLAKE2B 4e9d5b91e517d0cb6c5b995142286b8bef31577a1618e06a9084693ac877745b6625b77a07950e11f3d8e8948bb326e1aeb7daa732b7acb11c3a7ce804de1bcd SHA512 220e3ba44a57d145eba8b648a59ac6bdaeea9ea2dd43addec95a8a2934c44c92442494e4ccc179a7bc80019bd312f0b429978eaee4dbba334e16c3af96649229 +DIST genpatches-6.18-5.base.tar.xz 333884 BLAKE2B a7b06489d4362d08ae0f8d35eac17713924522b476db65186ec80adc66ce0b68aa68a092b5f630e0548934e493f26a17760d5d9a13ab203932c3db1f0f00c4c7 SHA512 d402223d594e087ccd639bc1506b932b2cf9c2a16f9d50eaf8308372af2e3a2525af1a12e51b37b5148b6b98df3c6b8305cc946dacefbd61d240f866234f9c78 +DIST genpatches-6.18-5.extras.tar.xz 4324 BLAKE2B 885772df3f69a71daac0d08ca4083e37a436818cc7607bbef11011959ba42db6842a42af28f120273dd3706fa219f6aa3873cc07449da004a4d2368e1ba3960a SHA512 0ebd28094d49c5b6c04cb0f8ca67d321bf1df8bf2977751daa7a8eaa1f8a50d4a140226533ea411776b0c3652ff583764f20dbd8d800a9bb363df4b3d183eecc DIST linux-6.18.tar.xz 154309096 BLAKE2B b94b7b9bf18aca0c3e50baf79b009a1448fc6cd9c3ee019f641cc247dcf53a4abef4274ee0608ad8cd4943af69854363a95d26e117ff23620bb07dccb158859f SHA512 88599ffdec96d150c1feb9b261ba93bb0301a9d0e1ad6bef7aeab1f5372cbfc57d8b43c7e902bd8f76921d1dbd8189663c142ea869e51d0e2b483b150ee00fe0 -DIST linux-v6.17.8-zen1.patch.zst 137500 BLAKE2B 7af7c75fa4a73c88a931f2f00ad9d2e34a0d176cd3fe4e2d06995241d7096a8a000d8fa8b7decdeedd0a41e549849b4809e42a73e499cec4ab8e93a04c9e237c SHA512 55338b31994cdf36a373fdc265fbaf534f3ceb4e0d379f61f45098b535f4a9a50033049c3a47fb8d3cbc5bf43800835657a19d0388fc751fd8b670e7e288fa04 -DIST linux-v6.17.9-zen1.patch.zst 136860 BLAKE2B 4d733c1c4e6eb2da3ac774e0b5828fca32ecfa550069e6b764a93ff8254c4774777460297641cf1c4d952d722637ed737b964f6dbe9da78682045d291928c081 SHA512 6378549f8090f2556351405965cd1d06f6f964722b162dd5b7d33117e672e69914f4f6bd728f2ddca556114dfaa4eb4b9fed0798a2c3a724516f3af7bdb6ceaf -DIST linux-v6.18-zen1.patch.zst 63203 BLAKE2B 4cb4964a993afccb16fa1f561944a9aa265d98d50f9233873a1e3a5be7bf47e16dd090ffebc0ed59c5fadba8d7a706b56388fa4693876f1b91a59dc6bbbf1d30 SHA512 92690863d289e9cb0c305f4ad933cd7b158252dac34161d69201522a538486c1194670a39a7d8d8b7a012a438abde37a7e50b8fdec8c6f76413fb231ebadbaf0 +DIST linux-v6.18.2-zen2.patch.zst 151600 BLAKE2B d390c7b9722b0fe5e10e56f7f00607d80e9a63329b1b0711e998529e5cb3bfa930c042331100fe1d847e3d1a23b3ab417e85011bb92d9913bc6a0308bc3a3b7b SHA512 93920e4f37919066937033ffa3cce9267060d14342c490016c68fe8ede0296ab5d9783f6ab8a956bb8ecbd49bc3c3ea7515187c882c8fe58ced696da1e52999e +DIST linux-v6.18.3-zen1.patch.zst 154027 BLAKE2B cd7c7026515feddc80accdb663da531f10f3c10ac92849ff0039b62d37bd9f826c6dd68841eead353564d4eb592f13f0460b6f6144e3cb42815b7efa5c7b7f51 SHA512 f3663625f35ee55a191384cede415790aa6f484b925f3cee4b40a8598577af68c22748b43d052fc591ecff160985ba36f3ab088c684f1c93f3fbef24981880b0 diff --git a/sys-kernel/zen-sources/files/0001-sched-proxy-Yield-the-donor-task.patch b/sys-kernel/zen-sources/files/0001-sched-proxy-Yield-the-donor-task.patch new file mode 100644 index 000000000000..b3437399ea49 --- /dev/null +++ b/sys-kernel/zen-sources/files/0001-sched-proxy-Yield-the-donor-task.patch @@ -0,0 +1,119 @@ +From d4ed8eac96348fdf65c285a1b756808581a80a69 Mon Sep 17 00:00:00 2001 +From: Fernand Sieber <sieberf@amazon.com> +Date: Thu, 6 Nov 2025 12:40:10 +0200 +Subject: [PATCH] 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 <oliver.sang@intel.com> +Closes: https://lore.kernel.org/oe-lkp/202510211205.1e0f5223-lkp@intel.com +Suggested-by: Peter Zijlstra <peterz@infradead.org> +Signed-off-by: Fernand Sieber <sieberf@amazon.com> +Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> +Link: https://patch.msgid.link/20251106104022.195157-1-sieberf@amazon.com +Signed-off-by: Brahmajit Das <listout@listout.xyz> +--- + 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 19b1a8b81c76..d3be71d5a9cc 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 b959a70471c1..907eea83294c 100644 +--- a/kernel/sched/ext.c ++++ b/kernel/sched/ext.c +@@ -1493,7 +1493,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); +@@ -1504,7 +1504,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 d30dfd6f18b7..99a10815ca17 100644 +--- a/kernel/sched/fair.c ++++ b/kernel/sched/fair.c +@@ -9006,7 +9006,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 7936d4333731..fb07dcfc60a2 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 a2b06eba44e7..417eb6a63015 100644 +--- a/kernel/sched/syscalls.c ++++ b/kernel/sched/syscalls.c +@@ -1607,7 +1607,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); + #endif /* !CONFIG_SCHED_ALT */ + + preempt_disable(); +@@ -1680,12 +1680,13 @@ int __sched yield_to(struct task_struct *p, bool preempt) + #ifdef CONFIG_SCHED_ALT + return 0; + #else /* !CONFIG_SCHED_ALT */ +- 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); +-- +2.52.0 + diff --git a/sys-kernel/zen-sources/zen-sources-6.17.8.ebuild b/sys-kernel/zen-sources/zen-sources-6.18.2.ebuild index 1309a0065518..458e038f5157 100644 --- a/sys-kernel/zen-sources/zen-sources-6.17.8.ebuild +++ b/sys-kernel/zen-sources/zen-sources-6.18.2.ebuild @@ -4,7 +4,7 @@ EAPI="8" ETYPE="sources" K_WANT_GENPATCHES="base extras" -K_GENPATCHES_VER="9" +K_GENPATCHES_VER="3" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" K_NODRYRUN="yes" @@ -19,19 +19,19 @@ HOMEPAGE="https://github.com/zen-kernel" # Needed for zstd compression of the patch BDEPEND="$(unpacker_src_uri_depends)" -ZEN_URI="https://github.com/zen-kernel/zen-kernel/releases/download/v${PV}-zen1/linux-v${PV}-zen1.patch.zst" +ZEN_URI="https://github.com/zen-kernel/zen-kernel/releases/download/v${PV}-zen2/linux-v${PV}-zen2.patch.zst" SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI} ${ZEN_URI}" KEYWORDS="~amd64 ~arm64 ~x86" -UNIPATCH_LIST="${WORKDIR}/linux-v${PV}-zen1.patch" +UNIPATCH_LIST="${WORKDIR}/linux-v${PV}-zen2.patch" UNIPATCH_STRICTORDER="yes" K_EXTRAEINFO="For more info on zen-sources, and for how to report problems, see: \ ${HOMEPAGE}, also go to #zen-sources on oftc" src_unpack() { - unpacker "linux-v${PV}-zen1.patch.zst" + unpacker "linux-v${PV}-zen2.patch.zst" kernel-2_src_unpack } @@ -46,7 +46,7 @@ pkg_setup() { } src_install() { - rm "${WORKDIR}/linux-v${PV}-zen1.patch" || die + rm "${WORKDIR}/linux-v${PV}-zen2.patch" || die kernel-2_src_install } diff --git a/sys-kernel/zen-sources/zen-sources-6.17.9.ebuild b/sys-kernel/zen-sources/zen-sources-6.18.3.ebuild index 1309a0065518..ee11fdc4a930 100644 --- a/sys-kernel/zen-sources/zen-sources-6.17.9.ebuild +++ b/sys-kernel/zen-sources/zen-sources-6.18.3.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" ETYPE="sources" K_WANT_GENPATCHES="base extras" -K_GENPATCHES_VER="9" +K_GENPATCHES_VER="5" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" K_NODRYRUN="yes" @@ -19,19 +19,25 @@ HOMEPAGE="https://github.com/zen-kernel" # Needed for zstd compression of the patch BDEPEND="$(unpacker_src_uri_depends)" -ZEN_URI="https://github.com/zen-kernel/zen-kernel/releases/download/v${PV}-zen1/linux-v${PV}-zen1.patch.zst" +ZEN_VER=1 +ZEN_URI="https://github.com/zen-kernel/zen-kernel/releases/download/v${PV}-zen${ZEN_VER}/linux-v${PV}-zen${ZEN_VER}.patch.zst" SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI} ${ZEN_URI}" KEYWORDS="~amd64 ~arm64 ~x86" -UNIPATCH_LIST="${WORKDIR}/linux-v${PV}-zen1.patch" +PATCHES=( + "${FILESDIR}/0001-sched-proxy-Yield-the-donor-task.patch" +) + +UNIPATCH_LIST="${WORKDIR}/linux-v${PV}-zen${ZEN_VER}.patch" UNIPATCH_STRICTORDER="yes" +UNIPATCH_EXCLUDE="1810 2701" K_EXTRAEINFO="For more info on zen-sources, and for how to report problems, see: \ ${HOMEPAGE}, also go to #zen-sources on oftc" src_unpack() { - unpacker "linux-v${PV}-zen1.patch.zst" + unpacker "linux-v${PV}-zen${ZEN_VER}.patch.zst" kernel-2_src_unpack } @@ -45,8 +51,13 @@ pkg_setup() { kernel-2_pkg_setup } +src_prepare() { + default + kernel-2_src_prepare +} + src_install() { - rm "${WORKDIR}/linux-v${PV}-zen1.patch" || die + rm "${WORKDIR}/linux-v${PV}-zen${ZEN_VER}.patch" || die kernel-2_src_install } diff --git a/sys-kernel/zen-sources/zen-sources-6.18.ebuild b/sys-kernel/zen-sources/zen-sources-6.18.ebuild deleted file mode 100644 index db994f031097..000000000000 --- a/sys-kernel/zen-sources/zen-sources-6.18.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" -ETYPE="sources" -K_WANT_GENPATCHES="base extras" -K_GENPATCHES_VER="1" -K_SECURITY_UNSUPPORTED="1" -K_NOSETEXTRAVERSION="1" -K_NODRYRUN="yes" - -inherit kernel-2 unpacker -detect_version -detect_arch - -DESCRIPTION="The Zen Kernel Live Sources" -HOMEPAGE="https://github.com/zen-kernel" - -# Needed for zstd compression of the patch -BDEPEND="$(unpacker_src_uri_depends)" - -ZEN_URI="https://github.com/zen-kernel/zen-kernel/releases/download/v${PV}-zen1/linux-v${PV}-zen1.patch.zst" -SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI} ${ZEN_URI}" - -KEYWORDS="~amd64 ~arm64 ~x86" - -UNIPATCH_LIST="${WORKDIR}/linux-v${PV}-zen1.patch" -UNIPATCH_STRICTORDER="yes" - -K_EXTRAEINFO="For more info on zen-sources, and for how to report problems, see: \ -${HOMEPAGE}, also go to #zen-sources on oftc" - -src_unpack() { - unpacker "linux-v${PV}-zen1.patch.zst" - kernel-2_src_unpack -} - -pkg_setup() { - ewarn - ewarn "${PN} is *not* supported by the Gentoo Kernel Project in any way." - ewarn "If you need support, please contact the zen developers directly." - ewarn "Do *not* open bugs in Gentoo's bugzilla unless you have issues with" - ewarn "the ebuilds. Thank you." - ewarn - kernel-2_pkg_setup -} - -src_install() { - rm "${WORKDIR}/linux-v${PV}-zen1.patch" || die - kernel-2_src_install -} - -pkg_postrm() { - kernel-2_pkg_postrm -} |
