FAILED: patch "[PATCH] sched/fair: Fix unthrottle_cfs_rq() for leaf_cfs_rq list" failed to apply to 5.4-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 39f23ce07b9355d05a64ae303ce20d1c4b92b957 Mon Sep 17 00:00:00 2001
From: Vincent Guittot <[email protected]>
Date: Wed, 13 May 2020 15:55:28 +0200
Subject: [PATCH] sched/fair: Fix unthrottle_cfs_rq() for leaf_cfs_rq list
Although not exactly identical, unthrottle_cfs_rq() and enqueue_task_fair() are quite close and follow the same sequence for enqueuing an entity in the cfs hierarchy. Modify unthrottle_cfs_rq() to use the same pattern as enqueue_task_fair(). This fixes a problem already faced with the latter and add an optimization in the last for_each_sched_entity loop.
Reported-by Tao Zhou <[email protected]>
kernel/sched/fair.c +30 -12
@@ -4774,7 +4774,6 @@ void unthrottle_cfs_rq(struct cfs_rq *cfs_rq)struct rq *rq =rq_of (cfs_rq);struct cfs_bandwidth *cfs_b =tg_cfs_bandwidth (cfs_rq->tg);struct sched_entity *se; -int enqueue =1 ;long task_delta, idle_task_delta; se = cfs_rq->tg->se[cpu_of (rq)];
@@ -4798,26 +4797,44 @@ void unthrottle_cfs_rq(struct cfs_rq *cfs_rq) idle_task_delta = cfs_rq->idle_h_nr_running;for_each_sched_entity (se) {if (se->on_rq) - enqueue =0 ; +break ; + cfs_rq =cfs_rq_of (se); +enqueue_entity (cfs_rq, se,ENQUEUE_WAKEUP ); + cfs_rq->h_nr_running += task_delta; + cfs_rq->idle_h_nr_running += idle_task_delta; + +/* end evaluation on encountering a throttled cfs_rq */ +if (cfs_rq_throttled (cfs_rq)) + goto unthrottle_throttle; + } + +for_each_sched_entity (se) { cfs_rq =cfs_rq_of (se); -if (enqueue) { -enqueue_entity (cfs_rq, se,ENQUEUE_WAKEUP ); - }else { -update_load_avg (cfs_rq, se,0 ); -se_update_runnable (se); - } + +update_load_avg (cfs_rq, se,UPDATE_TG ); +se_update_runnable (se); cfs_rq->h_nr_running += task_delta; cfs_rq->idle_h_nr_running += idle_task_delta; + +/* end evaluation on encountering a throttled cfs_rq */ if (cfs_rq_throttled (cfs_rq)) -break ; + goto unthrottle_throttle; + +/* +* One parent has been throttled and cfs_rq removed from the +* list. Add it back to not break the leaf list. +*/ +if (throttled_hierarchy (cfs_rq)) +list_add_leaf_cfs_rq (cfs_rq); } -if (!se) -add_nr_running (rq, task_delta); +/* At this point se is NULL and we are at root level*/ +add_nr_running (rq, task_delta); +unthrottle_throttle:/* * The cfs_rq_throttled() breaks in the above iteration can result in * incomplete leaf list maintenance, resulting in triggering the
@@ -4826,7 +4843,8 @@ void unthrottle_cfs_rq(struct cfs_rq *cfs_rq)for_each_sched_entity (se) { cfs_rq =cfs_rq_of (se); -list_add_leaf_cfs_rq (cfs_rq); +if (list_add_leaf_cfs_rq (cfs_rq)) +break ; }assert_list_leaf_cfs_rq (rq);
Quoted 5 lines · Le lundi 25 mai 2020 à 16:42:49 (+0200), [email protected] a écrit :
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
This patch needs commit
b34cb07dde7c ("sched/fair: Fix enqueue_task_fair() warning some more")
to be applied first. But then, it will not apply. The backport is :
[ Upstream commit 39f23ce07b9355d05a64ae303ce20d1c4b92b957 upstream ]
Although not exactly identical, unthrottle_cfs_rq() and enqueue_task_fair() are quite close and follow the same sequence for enqueuing an entity in the cfs hierarchy. Modify unthrottle_cfs_rq() to use the same pattern as enqueue_task_fair(). This fixes a problem already faced with the latter and add an optimization in the last for_each_sched_entity loop.
Reported-by Tao Zhou <[email protected]>
--- kernel/sched/fair.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-)
kernel/sched/fair.c +28 -8
@@ -4560,7 +4560,6 @@ void unthrottle_cfs_rq(struct cfs_rq *cfs_rq)struct rq *rq =rq_of (cfs_rq);struct cfs_bandwidth *cfs_b =tg_cfs_bandwidth (cfs_rq->tg);struct sched_entity *se; -int enqueue =1 ;long task_delta, idle_task_delta; se = cfs_rq->tg->se[cpu_of (rq)];
@@ -4584,21 +4583,41 @@ void unthrottle_cfs_rq(struct cfs_rq *cfs_rq) idle_task_delta = cfs_rq->idle_h_nr_running;for_each_sched_entity (se) {if (se->on_rq) - enqueue =0 ; +break ; + cfs_rq =cfs_rq_of (se); +enqueue_entity (cfs_rq, se,ENQUEUE_WAKEUP ); + + cfs_rq->h_nr_running += task_delta; + cfs_rq->idle_h_nr_running += idle_task_delta; +/* end evaluation on encountering a throttled cfs_rq */ +if (cfs_rq_throttled (cfs_rq)) + goto unthrottle_throttle; + } + +for_each_sched_entity (se) { cfs_rq =cfs_rq_of (se); -if (enqueue) -enqueue_entity (cfs_rq, se,ENQUEUE_WAKEUP ); + cfs_rq->h_nr_running += task_delta; cfs_rq->idle_h_nr_running += idle_task_delta; + +/* end evaluation on encountering a throttled cfs_rq */ if (cfs_rq_throttled (cfs_rq)) -break ; + goto unthrottle_throttle; + +/* +* One parent has been throttled and cfs_rq removed from the +* list. Add it back to not break the leaf list. +*/ +if (throttled_hierarchy (cfs_rq)) +list_add_leaf_cfs_rq (cfs_rq); } -if (!se) -add_nr_running (rq, task_delta); +/* At this point se is NULL and we are at root level*/ +add_nr_running (rq, task_delta); +unthrottle_throttle:/* * The cfs_rq_throttled() breaks in the above iteration can result in * incomplete leaf list maintenance, resulting in triggering the
@@ -4607,7 +4626,8 @@ void unthrottle_cfs_rq(struct cfs_rq *cfs_rq)for_each_sched_entity (se) { cfs_rq =cfs_rq_of (se); -list_add_leaf_cfs_rq (cfs_rq); +if (list_add_leaf_cfs_rq (cfs_rq)) +break ; }assert_list_leaf_cfs_rq (rq);
--
2.17.1
Sasha Levin
maintainerQuoted 19 lines · Vincent Guittot
Quoted 5 lines · Le lundi 25 mai 2020 à 16:42:49 (+0200), [email protected] a écrit :
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.This patch needs commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more")
to be applied first. But then, it will not apply. The backport is :[ Upstream commit
39f23ce07b9355d05a64ae303ce20d1c4b92b957upstream ]Although not exactly identical,
unthrottle_cfs_rq()andenqueue_task_fair()are quite close and follow the same sequence for enqueuing an entity in the cfs hierarchy. Modifyunthrottle_cfs_rq()to use the same pattern asenqueue_task_fair(). This fixes a problem already faced with the latter and add an optimization in the lastfor_each_sched_entityloop.
Quoted 7 lines
Fixes fe61468b2cb (sched/fair: Fix enqueue_task_fair warning)Reported-by Tao Zhou <[email protected]>
Signed-off-by Vincent Guittot <[email protected]>Signed-off-by Peter Zijlstra (Intel) <[email protected]>Reviewed-by Phil Auld <[email protected]>Reviewed-by Ben Segall <[email protected]>
Peter, could you review/ack the backport please? It's very different from the upstream version.
Signature · 2 lines
Thanks, Sasha
Greg KH
maintainerQuoted 21 lines · Vincent Guittot
Quoted 5 lines · Le lundi 25 mai 2020 à 16:42:49 (+0200), [email protected] a écrit :
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.This patch needs commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more")
to be applied first. But then, it will not apply. The backport is :[ Upstream commit
39f23ce07b9355d05a64ae303ce20d1c4b92b957upstream ]Although not exactly identical,
unthrottle_cfs_rq()andenqueue_task_fair()are quite close and follow the same sequence for enqueuing an entity in the cfs hierarchy. Modifyunthrottle_cfs_rq()to use the same pattern asenqueue_task_fair(). This fixes a problem already faced with the latter and add an optimization in the lastfor_each_sched_entityloop.Fixes fe61468b2cb (sched/fair: Fix enqueue_task_fair warning)Reported-by Tao Zhou <[email protected]>
Quoted 8 lines
Signed-off-by Vincent Guittot <[email protected]>Signed-off-by Peter Zijlstra (Intel) <[email protected]>Reviewed-by Phil Auld <[email protected]>Reviewed-by Ben Segall <[email protected]>--- kernel/sched/fair.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-)
This patch doesn't apply to the 5.4.y tree at all. Can someone please provide a working backport?
thanks,
greg k-h
Vincent Guittot
maintainerQuoted 32 lines · Greg KH
Quoted 21 lines · Vincent Guittot
Quoted 5 lines · Le lundi 25 mai 2020 à 16:42:49 (+0200), [email protected] a écrit :
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.This patch needs commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more")
to be applied first. But then, it will not apply. The backport is :[ Upstream commit
39f23ce07b9355d05a64ae303ce20d1c4b92b957upstream ]Although not exactly identical,
unthrottle_cfs_rq()andenqueue_task_fair()are quite close and follow the same sequence for enqueuing an entity in the cfs hierarchy. Modifyunthrottle_cfs_rq()to use the same pattern asenqueue_task_fair(). This fixes a problem already faced with the latter and add an optimization in the lastfor_each_sched_entityloop.Fixes fe61468b2cb (sched/fair: Fix enqueue_task_fair warning)Reported-by Tao Zhou <[email protected]>
Quoted 8 lines
Signed-off-by Vincent Guittot <[email protected]>Signed-off-by Peter Zijlstra (Intel) <[email protected]>Reviewed-by Phil Auld <[email protected]>Reviewed-by Ben Segall <[email protected]>--- kernel/sched/fair.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-)
Quoted 2 lines
This patch doesn't apply to the 5.4.y tree at all. Can someone please provide a working backport?
It seems that commit b34cb07dde7c ("sched/fair: Fix enqueue_task_fair() warning some more") has already been applied back in May. But then, I'm able to apply this patch on top of v5.4.y/v5.4.81
Thanks
Quoted 4 lines
thanks,
greg k-h
Greg KH
maintainerQuoted 33 lines · Vincent Guittot
Quoted 32 lines · Greg KH
Quoted 29 lines · Vincent Guittot
Quoted 5 lines · Le lundi 25 mai 2020 à 16:42:49 (+0200), [email protected] a écrit :
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.This patch needs commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more")
to be applied first. But then, it will not apply. The backport is :[ Upstream commit
39f23ce07b9355d05a64ae303ce20d1c4b92b957upstream ]Although not exactly identical,
unthrottle_cfs_rq()andenqueue_task_fair()are quite close and follow the same sequence for enqueuing an entity in the cfs hierarchy. Modifyunthrottle_cfs_rq()to use the same pattern asenqueue_task_fair(). This fixes a problem already faced with the latter and add an optimization in the lastfor_each_sched_entityloop.Fixes fe61468b2cb (sched/fair: Fix enqueue_task_fair warning)Reported-by Tao Zhou <[email protected]>
Signed-off-by Vincent Guittot <[email protected]>Signed-off-by Peter Zijlstra (Intel) <[email protected]>Reviewed-by Phil Auld <[email protected]>Reviewed-by Ben Segall <[email protected]>--- kernel/sched/fair.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-)
Quoted 8 lines
Quoted 2 lines
This patch doesn't apply to the 5.4.y tree at all. Can someone please provide a working backport?
It seems that commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more") has already been applied back in May. But then, I'm able to apply this patch on top of v5.4.y/v5.4.81
What is "this patch" here? I tried to apply 39f23ce07b93 ("sched/fair:
Fix unthrottle_cfs_rq() for leaf_cfs_rq list") directly to the 5.4 tree and it too did not apply.
confused,
greg k-h
Vincent Guittot
maintainerQuoted 44 lines · Greg KH
Quoted 33 lines · Vincent Guittot
Quoted 32 lines · Greg KH
Quoted 29 lines · Vincent Guittot
Quoted 5 lines · Le lundi 25 mai 2020 à 16:42:49 (+0200), [email protected] a écrit :
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.This patch needs commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more")
to be applied first. But then, it will not apply. The backport is :[ Upstream commit
39f23ce07b9355d05a64ae303ce20d1c4b92b957upstream ]Although not exactly identical,
unthrottle_cfs_rq()andenqueue_task_fair()are quite close and follow the same sequence for enqueuing an entity in the cfs hierarchy. Modifyunthrottle_cfs_rq()to use the same pattern asenqueue_task_fair(). This fixes a problem already faced with the latter and add an optimization in the lastfor_each_sched_entityloop.Fixes fe61468b2cb (sched/fair: Fix enqueue_task_fair warning)Reported-by Tao Zhou <[email protected]>
Signed-off-by Vincent Guittot <[email protected]>Signed-off-by Peter Zijlstra (Intel) <[email protected]>Reviewed-by Phil Auld <[email protected]>Reviewed-by Ben Segall <[email protected]>--- kernel/sched/fair.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-)Quoted 8 lines
Quoted 2 lines
This patch doesn't apply to the 5.4.y tree at all. Can someone please provide a working backport?
It seems that commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more") has already been applied back in May. But then, I'm able to apply this patch on top of v5.4.y/v5.4.81
Quoted 3 lines
What is "this patch" here? I tried to apply
39f23ce07b93("sched/fair:
Fixunthrottle_cfs_rq()forleaf_cfs_rqlist") directly to the 5.4 tree and it too did not apply.
commit 39f23ce07b93 ("sched/fair: Fix unthrottle_cfs_rq() for leaf_cfs_rq list") can't apply because there are several changes which are not fixes which have been applied since v5.4 on the same code.
This patch is the backport on v5.4 of the commit 39f23ce07b93
Quoted 4 lines
confused,
greg k-h
Greg KH
maintainerQuoted 49 lines · Vincent Guittot
Quoted 44 lines · Greg KH
Quoted 33 lines · Vincent Guittot
Quoted 32 lines · Greg KH
Quoted 29 lines · Vincent Guittot
Quoted 5 lines · Le lundi 25 mai 2020 à 16:42:49 (+0200), [email protected] a écrit :
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.This patch needs commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more")
to be applied first. But then, it will not apply. The backport is :[ Upstream commit
39f23ce07b9355d05a64ae303ce20d1c4b92b957upstream ]Although not exactly identical,
unthrottle_cfs_rq()andenqueue_task_fair()are quite close and follow the same sequence for enqueuing an entity in the cfs hierarchy. Modifyunthrottle_cfs_rq()to use the same pattern asenqueue_task_fair(). This fixes a problem already faced with the latter and add an optimization in the lastfor_each_sched_entityloop.Fixes fe61468b2cb (sched/fair: Fix enqueue_task_fair warning)Reported-by Tao Zhou <[email protected]>
Signed-off-by Vincent Guittot <[email protected]>Signed-off-by Peter Zijlstra (Intel) <[email protected]>Reviewed-by Phil Auld <[email protected]>Reviewed-by Ben Segall <[email protected]>--- kernel/sched/fair.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-)Quoted 8 lines
Quoted 2 lines
This patch doesn't apply to the 5.4.y tree at all. Can someone please provide a working backport?
It seems that commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more") has already been applied back in May. But then, I'm able to apply this patch on top of v5.4.y/v5.4.81Quoted 3 lines
What is "this patch" here? I tried to apply
39f23ce07b93("sched/fair:
Fixunthrottle_cfs_rq()forleaf_cfs_rqlist") directly to the 5.4 tree and it too did not apply.
Quoted 5 lines
commit
39f23ce07b93("sched/fair: Fixunthrottle_cfs_rq()forleaf_cfs_rqlist") can't apply because there are several changes which are not fixes which have been applied since v5.4 on the same code.This patch is the backport on v5.4 of the commit
39f23ce07b93
What is "this"? I tried to apply the above patch to the 5.4.y tree, and it didn't apply. So I still do not understand what I can do here...
greg k-h
Vincent Guittot
maintainerQuoted 51 lines · Greg KH
Quoted 49 lines · Vincent Guittot
Quoted 47 lines · Greg KH
Quoted 33 lines · Vincent Guittot
Quoted 32 lines · Greg KH
Quoted 29 lines · Vincent Guittot
Quoted 5 lines · Le lundi 25 mai 2020 à 16:42:49 (+0200), [email protected] a écrit :
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.This patch needs commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more")
to be applied first. But then, it will not apply. The backport is :[ Upstream commit
39f23ce07b9355d05a64ae303ce20d1c4b92b957upstream ]Although not exactly identical,
unthrottle_cfs_rq()andenqueue_task_fair()are quite close and follow the same sequence for enqueuing an entity in the cfs hierarchy. Modifyunthrottle_cfs_rq()to use the same pattern asenqueue_task_fair(). This fixes a problem already faced with the latter and add an optimization in the lastfor_each_sched_entityloop.Fixes fe61468b2cb (sched/fair: Fix enqueue_task_fair warning)Reported-by Tao Zhou <[email protected]>
Signed-off-by Vincent Guittot <[email protected]>Signed-off-by Peter Zijlstra (Intel) <[email protected]>Reviewed-by Phil Auld <[email protected]>Reviewed-by Ben Segall <[email protected]>--- kernel/sched/fair.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-)Quoted 8 lines
Quoted 2 lines
This patch doesn't apply to the 5.4.y tree at all. Can someone please provide a working backport?
It seems that commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more") has already been applied back in May. But then, I'm able to apply this patch on top of v5.4.y/v5.4.81What is "this patch" here? I tried to apply
39f23ce07b93("sched/fair:
Fixunthrottle_cfs_rq()forleaf_cfs_rqlist") directly to the 5.4 tree and it too did not apply.
Quoted 7 lines
Quoted 5 lines
commit
39f23ce07b93("sched/fair: Fixunthrottle_cfs_rq()forleaf_cfs_rqlist") can't apply because there are several changes which are not fixes which have been applied since v5.4 on the same code.This patch is the backport on v5.4 of the commit
39f23ce07b93What is "this"? I tried to apply the above patch to the 5.4.y tree, and
I was referring to the email <20200525172709.GB7427@vingu-book>
Quoted 1 line
it didn't apply. So I still do not understand what I can do here...
Let me resend it with a clean subject title
Quoted 2 lines
greg k-h
Sasha Levin
maintainerQuoted 50 lines · Greg KH
Quoted 49 lines · Vincent Guittot
Quoted 47 lines · Greg KH
Quoted 33 lines · Vincent Guittot
Quoted 32 lines · Greg KH
Quoted 29 lines · Vincent Guittot
Quoted 5 lines · Le lundi 25 mai 2020 à 16:42:49 (+0200), [email protected] a écrit :
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.This patch needs commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more")
to be applied first. But then, it will not apply. The backport is :[ Upstream commit
39f23ce07b9355d05a64ae303ce20d1c4b92b957upstream ]Although not exactly identical,
unthrottle_cfs_rq()andenqueue_task_fair()are quite close and follow the same sequence for enqueuing an entity in the cfs hierarchy. Modifyunthrottle_cfs_rq()to use the same pattern asenqueue_task_fair(). This fixes a problem already faced with the latter and add an optimization in the lastfor_each_sched_entityloop.Fixes fe61468b2cb (sched/fair: Fix enqueue_task_fair warning)Reported-by Tao Zhou <[email protected]>
Signed-off-by Vincent Guittot <[email protected]>Signed-off-by Peter Zijlstra (Intel) <[email protected]>Reviewed-by Phil Auld <[email protected]>Reviewed-by Ben Segall <[email protected]>--- kernel/sched/fair.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-)Quoted 8 lines
Quoted 2 lines
This patch doesn't apply to the 5.4.y tree at all. Can someone please provide a working backport?
It seems that commit
b34cb07dde7c("sched/fair: Fixenqueue_task_fair()warning some more") has already been applied back in May. But then, I'm able to apply this patch on top of v5.4.y/v5.4.81What is "this patch" here? I tried to apply
39f23ce07b93("sched/fair:
Fixunthrottle_cfs_rq()forleaf_cfs_rqlist") directly to the 5.4 tree and it too did not apply.
Quoted 8 lines
Quoted 5 lines
commit
39f23ce07b93("sched/fair: Fixunthrottle_cfs_rq()forleaf_cfs_rqlist") can't apply because there are several changes which are not fixes which have been applied since v5.4 on the same code.This patch is the backport on v5.4 of the commit
39f23ce07b93What is "this"? I tried to apply the above patch to the 5.4.y tree, and it didn't apply. So I still do not understand what I can do here...
It's already in our 5.4 tree I've added it there a few days ago :)
Signature · 2 lines
Thanks, Sasha