From: Greg Kroah-Hartman Date: Tue, 7 Mar 2023 15:27:00 +0000 (+0100) Subject: drop sched patch from all other queues X-Git-Tag: v6.2.3~39 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9f97d50e4cab400c90421bb73b978d560f9c7d34;p=thirdparty%2Fkernel%2Fstable-queue.git drop sched patch from all other queues --- diff --git a/queue-4.14/sched-fair-sanitize-vruntime-of-entity-being-placed.patch b/queue-4.14/sched-fair-sanitize-vruntime-of-entity-being-placed.patch deleted file mode 100644 index d124b62c8f4..00000000000 --- a/queue-4.14/sched-fair-sanitize-vruntime-of-entity-being-placed.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 38247e1de3305a6ef644404ac818bc6129440eae Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 30 Jan 2023 13:22:16 +0100 -Subject: sched/fair: sanitize vruntime of entity being placed - -From: Zhang Qiao - -[ Upstream commit 829c1651e9c4a6f78398d3e67651cef9bb6b42cc ] - -When a scheduling entity is placed onto cfs_rq, its vruntime is pulled -to the base level (around cfs_rq->min_vruntime), so that the entity -doesn't gain extra boost when placed backwards. - -However, if the entity being placed wasn't executed for a long time, its -vruntime may get too far behind (e.g. while cfs_rq was executing a -low-weight hog), which can inverse the vruntime comparison due to s64 -overflow. This results in the entity being placed with its original -vruntime way forwards, so that it will effectively never get to the cpu. - -To prevent that, ignore the vruntime of the entity being placed if it -didn't execute for much longer than the characteristic sheduler time -scale. - -[rkagan: formatted, adjusted commit log, comments, cutoff value] -Signed-off-by: Zhang Qiao -Co-developed-by: Roman Kagan -Signed-off-by: Roman Kagan -Signed-off-by: Peter Zijlstra (Intel) -Link: https://lkml.kernel.org/r/20230130122216.3555094-1-rkagan@amazon.de -Signed-off-by: Sasha Levin ---- - kernel/sched/fair.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 3ff60230710c9..afa21e43477fa 100644 ---- a/kernel/sched/fair.c -+++ b/kernel/sched/fair.c -@@ -3615,6 +3615,7 @@ static void - place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) - { - u64 vruntime = cfs_rq->min_vruntime; -+ u64 sleep_time; - - /* - * The 'current' period is already promised to the current tasks, -@@ -3639,8 +3640,18 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) - vruntime -= thresh; - } - -- /* ensure we never gain time by being placed backwards. */ -- se->vruntime = max_vruntime(se->vruntime, vruntime); -+ /* -+ * Pull vruntime of the entity being placed to the base level of -+ * cfs_rq, to prevent boosting it if placed backwards. If the entity -+ * slept for a long time, don't even try to compare its vruntime with -+ * the base as it may be too far off and the comparison may get -+ * inversed due to s64 overflow. -+ */ -+ sleep_time = rq_clock_task(rq_of(cfs_rq)) - se->exec_start; -+ if ((s64)sleep_time > 60LL * NSEC_PER_SEC) -+ se->vruntime = vruntime; -+ else -+ se->vruntime = max_vruntime(se->vruntime, vruntime); - } - - static void check_enqueue_throttle(struct cfs_rq *cfs_rq); --- -2.39.2 - diff --git a/queue-4.14/series b/queue-4.14/series index 11b51f70df5..5f0530b5e00 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -76,7 +76,6 @@ media-usb-siano-fix-use-after-free-bugs-caused-by-do.patch rpmsg-glink-avoid-infinite-loop-on-intent-for-missin.patch udf-define-efscorrupted-error-code.patch arm-dts-exynos-use-exynos5420-compatible-for-the-mip.patch -sched-fair-sanitize-vruntime-of-entity-being-placed.patch wifi-brcmfmac-fix-potential-stack-out-of-bounds-in-b.patch rcu-suppress-smp_processor_id-complaint-in-synchroni.patch thermal-intel-fix-unsigned-comparison-with-less-than.patch diff --git a/queue-4.19/sched-fair-sanitize-vruntime-of-entity-being-placed.patch b/queue-4.19/sched-fair-sanitize-vruntime-of-entity-being-placed.patch deleted file mode 100644 index f449890f300..00000000000 --- a/queue-4.19/sched-fair-sanitize-vruntime-of-entity-being-placed.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 47398e01190531ee03509774a18c55181b7a72c8 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 30 Jan 2023 13:22:16 +0100 -Subject: sched/fair: sanitize vruntime of entity being placed - -From: Zhang Qiao - -[ Upstream commit 829c1651e9c4a6f78398d3e67651cef9bb6b42cc ] - -When a scheduling entity is placed onto cfs_rq, its vruntime is pulled -to the base level (around cfs_rq->min_vruntime), so that the entity -doesn't gain extra boost when placed backwards. - -However, if the entity being placed wasn't executed for a long time, its -vruntime may get too far behind (e.g. while cfs_rq was executing a -low-weight hog), which can inverse the vruntime comparison due to s64 -overflow. This results in the entity being placed with its original -vruntime way forwards, so that it will effectively never get to the cpu. - -To prevent that, ignore the vruntime of the entity being placed if it -didn't execute for much longer than the characteristic sheduler time -scale. - -[rkagan: formatted, adjusted commit log, comments, cutoff value] -Signed-off-by: Zhang Qiao -Co-developed-by: Roman Kagan -Signed-off-by: Roman Kagan -Signed-off-by: Peter Zijlstra (Intel) -Link: https://lkml.kernel.org/r/20230130122216.3555094-1-rkagan@amazon.de -Signed-off-by: Sasha Levin ---- - kernel/sched/fair.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 84e7efda98daf..304e7fa0ae870 100644 ---- a/kernel/sched/fair.c -+++ b/kernel/sched/fair.c -@@ -3858,6 +3858,7 @@ static void - place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) - { - u64 vruntime = cfs_rq->min_vruntime; -+ u64 sleep_time; - - /* - * The 'current' period is already promised to the current tasks, -@@ -3882,8 +3883,18 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) - vruntime -= thresh; - } - -- /* ensure we never gain time by being placed backwards. */ -- se->vruntime = max_vruntime(se->vruntime, vruntime); -+ /* -+ * Pull vruntime of the entity being placed to the base level of -+ * cfs_rq, to prevent boosting it if placed backwards. If the entity -+ * slept for a long time, don't even try to compare its vruntime with -+ * the base as it may be too far off and the comparison may get -+ * inversed due to s64 overflow. -+ */ -+ sleep_time = rq_clock_task(rq_of(cfs_rq)) - se->exec_start; -+ if ((s64)sleep_time > 60LL * NSEC_PER_SEC) -+ se->vruntime = vruntime; -+ else -+ se->vruntime = max_vruntime(se->vruntime, vruntime); - } - - static void check_enqueue_throttle(struct cfs_rq *cfs_rq); --- -2.39.2 - diff --git a/queue-4.19/series b/queue-4.19/series index f3b801708d8..ce1e885f762 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -115,7 +115,6 @@ media-usb-siano-fix-use-after-free-bugs-caused-by-do.patch rpmsg-glink-avoid-infinite-loop-on-intent-for-missin.patch udf-define-efscorrupted-error-code.patch arm-dts-exynos-use-exynos5420-compatible-for-the-mip.patch -sched-fair-sanitize-vruntime-of-entity-being-placed.patch wifi-brcmfmac-fix-potential-stack-out-of-bounds-in-b.patch rcu-suppress-smp_processor_id-complaint-in-synchroni.patch thermal-intel-fix-unsigned-comparison-with-less-than.patch diff --git a/queue-5.10/sched-fair-sanitize-vruntime-of-entity-being-placed.patch b/queue-5.10/sched-fair-sanitize-vruntime-of-entity-being-placed.patch deleted file mode 100644 index 6027f4c7d4e..00000000000 --- a/queue-5.10/sched-fair-sanitize-vruntime-of-entity-being-placed.patch +++ /dev/null @@ -1,70 +0,0 @@ -From d80d945eea4fa7165e1a410111e0c4947075bd02 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 30 Jan 2023 13:22:16 +0100 -Subject: sched/fair: sanitize vruntime of entity being placed - -From: Zhang Qiao - -[ Upstream commit 829c1651e9c4a6f78398d3e67651cef9bb6b42cc ] - -When a scheduling entity is placed onto cfs_rq, its vruntime is pulled -to the base level (around cfs_rq->min_vruntime), so that the entity -doesn't gain extra boost when placed backwards. - -However, if the entity being placed wasn't executed for a long time, its -vruntime may get too far behind (e.g. while cfs_rq was executing a -low-weight hog), which can inverse the vruntime comparison due to s64 -overflow. This results in the entity being placed with its original -vruntime way forwards, so that it will effectively never get to the cpu. - -To prevent that, ignore the vruntime of the entity being placed if it -didn't execute for much longer than the characteristic sheduler time -scale. - -[rkagan: formatted, adjusted commit log, comments, cutoff value] -Signed-off-by: Zhang Qiao -Co-developed-by: Roman Kagan -Signed-off-by: Roman Kagan -Signed-off-by: Peter Zijlstra (Intel) -Link: https://lkml.kernel.org/r/20230130122216.3555094-1-rkagan@amazon.de -Signed-off-by: Sasha Levin ---- - kernel/sched/fair.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index c39d2fc3f9945..68166c599a355 100644 ---- a/kernel/sched/fair.c -+++ b/kernel/sched/fair.c -@@ -4278,6 +4278,7 @@ static void - place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) - { - u64 vruntime = cfs_rq->min_vruntime; -+ u64 sleep_time; - - /* - * The 'current' period is already promised to the current tasks, -@@ -4302,8 +4303,18 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) - vruntime -= thresh; - } - -- /* ensure we never gain time by being placed backwards. */ -- se->vruntime = max_vruntime(se->vruntime, vruntime); -+ /* -+ * Pull vruntime of the entity being placed to the base level of -+ * cfs_rq, to prevent boosting it if placed backwards. If the entity -+ * slept for a long time, don't even try to compare its vruntime with -+ * the base as it may be too far off and the comparison may get -+ * inversed due to s64 overflow. -+ */ -+ sleep_time = rq_clock_task(rq_of(cfs_rq)) - se->exec_start; -+ if ((s64)sleep_time > 60LL * NSEC_PER_SEC) -+ se->vruntime = vruntime; -+ else -+ se->vruntime = max_vruntime(se->vruntime, vruntime); - } - - static void check_enqueue_throttle(struct cfs_rq *cfs_rq); --- -2.39.2 - diff --git a/queue-5.10/series b/queue-5.10/series index d4bf37ed76b..75770f12c8b 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -283,7 +283,6 @@ rpmsg-glink-avoid-infinite-loop-on-intent-for-missin.patch udf-define-efscorrupted-error-code.patch arm-dts-exynos-use-exynos5420-compatible-for-the-mip.patch blk-iocost-fix-divide-by-0-error-in-calc_lcoefs.patch -sched-fair-sanitize-vruntime-of-entity-being-placed.patch wifi-ath9k-fix-use-after-free-in-ath9k_hif_usb_disco.patch wifi-brcmfmac-fix-potential-stack-out-of-bounds-in-b.patch rcu-make-rcu_lockdep_warn-avoid-early-lockdep-checks.patch diff --git a/queue-5.15/sched-fair-sanitize-vruntime-of-entity-being-placed.patch b/queue-5.15/sched-fair-sanitize-vruntime-of-entity-being-placed.patch deleted file mode 100644 index f935f7df5a9..00000000000 --- a/queue-5.15/sched-fair-sanitize-vruntime-of-entity-being-placed.patch +++ /dev/null @@ -1,70 +0,0 @@ -From bcfd9147a5efa95a66562cf4834b860b1e0b77ff Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 30 Jan 2023 13:22:16 +0100 -Subject: sched/fair: sanitize vruntime of entity being placed - -From: Zhang Qiao - -[ Upstream commit 829c1651e9c4a6f78398d3e67651cef9bb6b42cc ] - -When a scheduling entity is placed onto cfs_rq, its vruntime is pulled -to the base level (around cfs_rq->min_vruntime), so that the entity -doesn't gain extra boost when placed backwards. - -However, if the entity being placed wasn't executed for a long time, its -vruntime may get too far behind (e.g. while cfs_rq was executing a -low-weight hog), which can inverse the vruntime comparison due to s64 -overflow. This results in the entity being placed with its original -vruntime way forwards, so that it will effectively never get to the cpu. - -To prevent that, ignore the vruntime of the entity being placed if it -didn't execute for much longer than the characteristic sheduler time -scale. - -[rkagan: formatted, adjusted commit log, comments, cutoff value] -Signed-off-by: Zhang Qiao -Co-developed-by: Roman Kagan -Signed-off-by: Roman Kagan -Signed-off-by: Peter Zijlstra (Intel) -Link: https://lkml.kernel.org/r/20230130122216.3555094-1-rkagan@amazon.de -Signed-off-by: Sasha Levin ---- - kernel/sched/fair.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 6648683cd9644..671bbd71ff26c 100644 ---- a/kernel/sched/fair.c -+++ b/kernel/sched/fair.c -@@ -4331,6 +4331,7 @@ static void - place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) - { - u64 vruntime = cfs_rq->min_vruntime; -+ u64 sleep_time; - - /* - * The 'current' period is already promised to the current tasks, -@@ -4355,8 +4356,18 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) - vruntime -= thresh; - } - -- /* ensure we never gain time by being placed backwards. */ -- se->vruntime = max_vruntime(se->vruntime, vruntime); -+ /* -+ * Pull vruntime of the entity being placed to the base level of -+ * cfs_rq, to prevent boosting it if placed backwards. If the entity -+ * slept for a long time, don't even try to compare its vruntime with -+ * the base as it may be too far off and the comparison may get -+ * inversed due to s64 overflow. -+ */ -+ sleep_time = rq_clock_task(rq_of(cfs_rq)) - se->exec_start; -+ if ((s64)sleep_time > 60LL * NSEC_PER_SEC) -+ se->vruntime = vruntime; -+ else -+ se->vruntime = max_vruntime(se->vruntime, vruntime); - } - - static void check_enqueue_throttle(struct cfs_rq *cfs_rq); --- -2.39.2 - diff --git a/queue-5.15/series b/queue-5.15/series index 4e5040310d0..ae65b288763 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -366,7 +366,6 @@ udf-define-efscorrupted-error-code.patch arm-dts-exynos-use-exynos5420-compatible-for-the-mip.patch blk-iocost-fix-divide-by-0-error-in-calc_lcoefs.patch trace-blktrace-fix-memory-leak-with-using-debugfs_lo.patch -sched-fair-sanitize-vruntime-of-entity-being-placed.patch wifi-ath9k-fix-use-after-free-in-ath9k_hif_usb_disco.patch wifi-brcmfmac-fix-potential-stack-out-of-bounds-in-b.patch rcu-make-rcu_lockdep_warn-avoid-early-lockdep-checks.patch diff --git a/queue-5.4/sched-fair-sanitize-vruntime-of-entity-being-placed.patch b/queue-5.4/sched-fair-sanitize-vruntime-of-entity-being-placed.patch deleted file mode 100644 index 2c036a69e17..00000000000 --- a/queue-5.4/sched-fair-sanitize-vruntime-of-entity-being-placed.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 7cf75c4f005171522b77a8b59ba13acb71c92684 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 30 Jan 2023 13:22:16 +0100 -Subject: sched/fair: sanitize vruntime of entity being placed - -From: Zhang Qiao - -[ Upstream commit 829c1651e9c4a6f78398d3e67651cef9bb6b42cc ] - -When a scheduling entity is placed onto cfs_rq, its vruntime is pulled -to the base level (around cfs_rq->min_vruntime), so that the entity -doesn't gain extra boost when placed backwards. - -However, if the entity being placed wasn't executed for a long time, its -vruntime may get too far behind (e.g. while cfs_rq was executing a -low-weight hog), which can inverse the vruntime comparison due to s64 -overflow. This results in the entity being placed with its original -vruntime way forwards, so that it will effectively never get to the cpu. - -To prevent that, ignore the vruntime of the entity being placed if it -didn't execute for much longer than the characteristic sheduler time -scale. - -[rkagan: formatted, adjusted commit log, comments, cutoff value] -Signed-off-by: Zhang Qiao -Co-developed-by: Roman Kagan -Signed-off-by: Roman Kagan -Signed-off-by: Peter Zijlstra (Intel) -Link: https://lkml.kernel.org/r/20230130122216.3555094-1-rkagan@amazon.de -Signed-off-by: Sasha Levin ---- - kernel/sched/fair.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index d2a68ae7596ec..97ede6b914422 100644 ---- a/kernel/sched/fair.c -+++ b/kernel/sched/fair.c -@@ -3881,6 +3881,7 @@ static void - place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) - { - u64 vruntime = cfs_rq->min_vruntime; -+ u64 sleep_time; - - /* - * The 'current' period is already promised to the current tasks, -@@ -3905,8 +3906,18 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) - vruntime -= thresh; - } - -- /* ensure we never gain time by being placed backwards. */ -- se->vruntime = max_vruntime(se->vruntime, vruntime); -+ /* -+ * Pull vruntime of the entity being placed to the base level of -+ * cfs_rq, to prevent boosting it if placed backwards. If the entity -+ * slept for a long time, don't even try to compare its vruntime with -+ * the base as it may be too far off and the comparison may get -+ * inversed due to s64 overflow. -+ */ -+ sleep_time = rq_clock_task(rq_of(cfs_rq)) - se->exec_start; -+ if ((s64)sleep_time > 60LL * NSEC_PER_SEC) -+ se->vruntime = vruntime; -+ else -+ se->vruntime = max_vruntime(se->vruntime, vruntime); - } - - static void check_enqueue_throttle(struct cfs_rq *cfs_rq); --- -2.39.2 - diff --git a/queue-5.4/series b/queue-5.4/series index 1e3d8fdc53f..a0de2744ad9 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -178,7 +178,6 @@ rpmsg-glink-avoid-infinite-loop-on-intent-for-missin.patch udf-define-efscorrupted-error-code.patch arm-dts-exynos-use-exynos5420-compatible-for-the-mip.patch blk-iocost-fix-divide-by-0-error-in-calc_lcoefs.patch -sched-fair-sanitize-vruntime-of-entity-being-placed.patch wifi-brcmfmac-fix-potential-stack-out-of-bounds-in-b.patch rcu-suppress-smp_processor_id-complaint-in-synchroni.patch thermal-intel-fix-unsigned-comparison-with-less-than.patch