Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1607127 > unrolled thread
| Started by | Byungchul Park <byungchul.park@lge.com> |
|---|---|
| First post | 2017-03-23 03:20 +0100 |
| Last post | 2017-03-23 23:50 +0100 |
| Articles | 7 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() Byungchul Park <byungchul.park@lge.com> - 2017-03-23 03:20 +0100
Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() Byungchul Park <byungchul.park@lge.com> - 2017-03-23 10:30 +0100
Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() Steven Rostedt <rostedt@goodmis.org> - 2017-03-23 15:00 +0100
Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() Peter Zijlstra <peterz@infradead.org> - 2017-03-23 10:50 +0100
Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() Byungchul Park <byungchul.park@lge.com> - 2017-03-23 11:40 +0100
Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() Steven Rostedt <rostedt@goodmis.org> - 2017-03-23 15:10 +0100
Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() Byungchul Park <byungchul.park@lge.com> - 2017-03-23 23:50 +0100
| From | Byungchul Park <byungchul.park@lge.com> |
|---|---|
| Date | 2017-03-23 03:20 +0100 |
| Subject | [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() |
| Message-ID | <to0w1-3Qh-15@gated-at.bofh.it> |
It would be better to avoid pushing tasks to other cpu within
a SD_PREFER_SIBLING domain, instead, get more chances to check other
siblings.
Signed-off-by: Byungchul Park <byungchul.park@lge.com>
---
kernel/sched/rt.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 979b734..6332b2ad 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -1624,6 +1624,7 @@ static int find_lowest_rq(struct task_struct *task)
struct cpumask *lowest_mask = this_cpu_cpumask_var_ptr(local_cpu_mask);
int this_cpu = smp_processor_id();
int cpu = task_cpu(task);
+ int fallback_cpu = -1;
/* Make sure the mask is initialized first */
if (unlikely(!lowest_mask))
@@ -1671,6 +1672,15 @@ static int find_lowest_rq(struct task_struct *task)
best_cpu = cpumask_first_and(lowest_mask,
sched_domain_span(sd));
if (best_cpu < nr_cpu_ids) {
+ /*
+ * If current domain is SD_PREFER_SIBLING
+ * flaged, we have to get more chances to
+ * check other siblings.
+ */
+ if (sd->flags & SD_PREFER_SIBLING) {
+ fallback_cpu = best_cpu;
+ continue;
+ }
rcu_read_unlock();
return best_cpu;
}
@@ -1679,6 +1689,13 @@ static int find_lowest_rq(struct task_struct *task)
rcu_read_unlock();
/*
+ * If fallback_cpu is valid, all our quesses failed *except* for
+ * SD_PREFER_SIBLING domain. Now, we can return the fallback cpu.
+ */
+ if (fallback_cpu != -1)
+ return fallback_cpu;
+
+ /*
* And finally, if there were no matches within the domains
* just give the caller *something* to work with from the compatible
* locations.
--
1.9.1
[toc] | [next] | [standalone]
| From | Byungchul Park <byungchul.park@lge.com> |
|---|---|
| Date | 2017-03-23 10:30 +0100 |
| Subject | Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() |
| Message-ID | <to7ea-eW-17@gated-at.bofh.it> |
| In reply to | #1607127 |
On Thu, Mar 23, 2017 at 11:12:49AM +0900, Byungchul Park wrote:
> It would be better to avoid pushing tasks to other cpu within
> a SD_PREFER_SIBLING domain, instead, get more chances to check other
> siblings.
+cc ghaskins@novell.com
+cc srostedt@redhat.com
>
> Signed-off-by: Byungchul Park <byungchul.park@lge.com>
> ---
> kernel/sched/rt.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
> index 979b734..6332b2ad 100644
> --- a/kernel/sched/rt.c
> +++ b/kernel/sched/rt.c
> @@ -1624,6 +1624,7 @@ static int find_lowest_rq(struct task_struct *task)
> struct cpumask *lowest_mask = this_cpu_cpumask_var_ptr(local_cpu_mask);
> int this_cpu = smp_processor_id();
> int cpu = task_cpu(task);
> + int fallback_cpu = -1;
>
> /* Make sure the mask is initialized first */
> if (unlikely(!lowest_mask))
> @@ -1671,6 +1672,15 @@ static int find_lowest_rq(struct task_struct *task)
> best_cpu = cpumask_first_and(lowest_mask,
> sched_domain_span(sd));
> if (best_cpu < nr_cpu_ids) {
> + /*
> + * If current domain is SD_PREFER_SIBLING
> + * flaged, we have to get more chances to
> + * check other siblings.
> + */
> + if (sd->flags & SD_PREFER_SIBLING) {
> + fallback_cpu = best_cpu;
> + continue;
> + }
> rcu_read_unlock();
> return best_cpu;
> }
> @@ -1679,6 +1689,13 @@ static int find_lowest_rq(struct task_struct *task)
> rcu_read_unlock();
>
> /*
> + * If fallback_cpu is valid, all our quesses failed *except* for
> + * SD_PREFER_SIBLING domain. Now, we can return the fallback cpu.
> + */
> + if (fallback_cpu != -1)
> + return fallback_cpu;
> +
> + /*
> * And finally, if there were no matches within the domains
> * just give the caller *something* to work with from the compatible
> * locations.
> --
> 1.9.1
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2017-03-23 15:00 +0100 |
| Subject | Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() |
| Message-ID | <tobrs-2VN-19@gated-at.bofh.it> |
| In reply to | #1607292 |
On Thu, 23 Mar 2017 18:21:23 +0900 Byungchul Park <byungchul.park@lge.com> wrote: > On Thu, Mar 23, 2017 at 11:12:49AM +0900, Byungchul Park wrote: > > It would be better to avoid pushing tasks to other cpu within > > a SD_PREFER_SIBLING domain, instead, get more chances to check other > > siblings. > > +cc ghaskins@novell.com > +cc srostedt@redhat.com > Neither of us work at those companies anymore. -- Steve
[toc] | [prev] | [next] | [standalone]
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Date | 2017-03-23 10:50 +0100 |
| Subject | Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() |
| Message-ID | <to7xw-mT-13@gated-at.bofh.it> |
| In reply to | #1607127 |
On Thu, Mar 23, 2017 at 11:12:49AM +0900, Byungchul Park wrote: > It would be better to avoid pushing tasks to other cpu within > a SD_PREFER_SIBLING domain, instead, get more chances to check other > siblings. Did you forget to post the rt equivalent to patch 1?
[toc] | [prev] | [next] | [standalone]
| From | Byungchul Park <byungchul.park@lge.com> |
|---|---|
| Date | 2017-03-23 11:40 +0100 |
| Subject | Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() |
| Message-ID | <to8jU-XG-21@gated-at.bofh.it> |
| In reply to | #1607308 |
On Thu, Mar 23, 2017 at 10:44:45AM +0100, Peter Zijlstra wrote: > On Thu, Mar 23, 2017 at 11:12:49AM +0900, Byungchul Park wrote: > > It would be better to avoid pushing tasks to other cpu within > > a SD_PREFER_SIBLING domain, instead, get more chances to check other > > siblings. > > Did you forget to post the rt equivalent to patch 1? No. Fortunately, rt currently works as patch 1 does.
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2017-03-23 15:10 +0100 |
| Subject | Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() |
| Message-ID | <tobB8-3e8-13@gated-at.bofh.it> |
| In reply to | #1607335 |
On Thu, 23 Mar 2017 19:36:51 +0900 Byungchul Park <byungchul.park@lge.com> wrote: > On Thu, Mar 23, 2017 at 10:44:45AM +0100, Peter Zijlstra wrote: > > On Thu, Mar 23, 2017 at 11:12:49AM +0900, Byungchul Park wrote: > > > It would be better to avoid pushing tasks to other cpu within > > > a SD_PREFER_SIBLING domain, instead, get more chances to check > > > other siblings. > > > > Did you forget to post the rt equivalent to patch 1? > > No. Fortunately, rt currently works as patch 1 does. I'm thinking that the rt and deadline search for lowest rq functions should be merged as one. What they are doing is looking for the rq with the lowest priority. deadline currently doesn't care if it picks an rq with an rt task running on it, even when there's an rq with no rt tasks that the dl task can migrate to. The same goes with rt. It could place an RT task on an rq running a deadline task without knowing the rt task wont be able to run on that cpu immediately. -- Steve
[toc] | [prev] | [next] | [standalone]
| From | Byungchul Park <byungchul.park@lge.com> |
|---|---|
| Date | 2017-03-23 23:50 +0100 |
| Subject | Re: [PATCH v3 3/3] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() |
| Message-ID | <tojIl-wf-1@gated-at.bofh.it> |
| In reply to | #1607525 |
On Thu, Mar 23, 2017 at 07:08:24AM -0700, Steven Rostedt wrote: > On Thu, 23 Mar 2017 19:36:51 +0900 > Byungchul Park <byungchul.park@lge.com> wrote: > > > On Thu, Mar 23, 2017 at 10:44:45AM +0100, Peter Zijlstra wrote: > > > On Thu, Mar 23, 2017 at 11:12:49AM +0900, Byungchul Park wrote: > > > > It would be better to avoid pushing tasks to other cpu within > > > > a SD_PREFER_SIBLING domain, instead, get more chances to check > > > > other siblings. > > > > > > Did you forget to post the rt equivalent to patch 1? > > > > No. Fortunately, rt currently works as patch 1 does. > > I'm thinking that the rt and deadline search for lowest rq functions > should be merged as one. > > What they are doing is looking for the rq with the lowest priority. > deadline currently doesn't care if it picks an rq with an rt task > running on it, even when there's an rq with no rt tasks that the dl task > can migrate to. The same goes with rt. It could place an RT task on an > rq running a deadline task without knowing the rt task wont be able to > run on that cpu immediately. I also think so. And IMHO there are more things to care wrt rt/dl migration. As you said, the cases should be considered and fixed. I wonder if the rt and dl seartch should be merged as one though.. Thank you, Byungchul
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web