* [RESEND PATCH v12 0/2] Make find_later_rq() choose a closer cpu in topology @ 2018-06-18 4:58 Byungchul Park 2018-06-18 4:58 ` [RESEND PATCH v12 1/2] sched/deadline: Add support for SD_PREFER_SIBLING on find_later_rq() Byungchul Park 2018-06-18 4:58 ` [RESEND PATCH v12 2/2] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() Byungchul Park 0 siblings, 2 replies; 8+ messages in thread From: Byungchul Park @ 2018-06-18 4:58 UTC (permalink / raw) To: peterz, mingo, rostedt Cc: tglx, raistlin, linux-kernel, juri.lelli, bristot, kernel-team, joel Change from v11 -. Rebase onto the latest tip/sched/core -. make the word 'cpu' in comments be upper case as Ingo did in the commit 97fb7a0a89 -. Avoid a compile warning caused by mismatching bwt const and non-const 'struct sched_domain' in find_cpu() Change from v10 -. modify a comment a bit as Steven suggested Change from v9 -. modify a comment a bit so to be more clear as Juri suggested Change from v8 -. add suggested-by Peterz -. add several comments Change from v7 -. fix a trivial typo -. modify commit messages to explain what it does more clearly -. simplify code with an existing macro Change from v6 -. add a comment about selection of fallback_cpu incase more than one exist -. modify a comment explaining what we do wrt PREFER_SIBLING Change from v5 -. exclude two patches already picked up by peterz (sched/deadline: Make find_later_rq() choose a closer cpu in topology) (sched/deadline: Change return value of cpudl_find()) -. apply what peterz fixed for 'prefer sibling', into deadline and rt Change from v4 -. remove a patch that might cause huge lock contention (by spin lock(&cpudl.lock) in a hot path of scheduler) Change from v3 -. rename closest_cpu to best_cpu so that it align with rt -. protect referring cpudl.elements with cpudl.lock -. change return value of cpudl_find() to bool Change from v2 -. add support for SD_PREFER_SIBLING Change from v1 -. clean up the patch Byungchul Park (2): sched/deadline: Add support for SD_PREFER_SIBLING on find_later_rq() sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() kernel/sched/deadline.c | 80 ++++++++++++++++++++++++++++++++++++++++++++----- kernel/sched/rt.c | 78 +++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 148 insertions(+), 10 deletions(-) -- 1.9.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [RESEND PATCH v12 1/2] sched/deadline: Add support for SD_PREFER_SIBLING on find_later_rq() 2018-06-18 4:58 [RESEND PATCH v12 0/2] Make find_later_rq() choose a closer cpu in topology Byungchul Park @ 2018-06-18 4:58 ` Byungchul Park 2018-06-18 21:36 ` Steven Rostedt 2018-06-18 4:58 ` [RESEND PATCH v12 2/2] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() Byungchul Park 1 sibling, 1 reply; 8+ messages in thread From: Byungchul Park @ 2018-06-18 4:58 UTC (permalink / raw) To: peterz, mingo, rostedt Cc: tglx, raistlin, linux-kernel, juri.lelli, bristot, kernel-team, joel Hello Juri, I've changed the code a little bit to avoid a compile warning caused by 'const' args of find_cpu(). Can I keep your Acked-by? BEFORE: static int find_cpu(const struct cpumask *mask, const struct sched_domain *sd, const struct sched_domain *prefer) AFTER: static int find_cpu(const struct cpumask *mask, struct sched_domain *sd, struct sched_domain *prefer) (I temporarily removed the Acked-by you gave me.) Acked-by: Juri Lelli <juri.lelli@arm.com> -----8<----- From 5a4753e8c15369420a16fa04026f74ae5c9d377c Mon Sep 17 00:00:00 2001 From: Byungchul Park <byungchul.park@lge.com> Date: Mon, 4 Jun 2018 16:46:56 +0900 Subject: [RESEND PATCH v12 1/2] sched/deadline: Add support for SD_PREFER_SIBLING on find_later_rq() It would be better to try to check other siblings first if SD_PREFER_SIBLING is flaged when pushing tasks - migration. Suggested-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Byungchul Park <byungchul.park@lge.com> --- kernel/sched/deadline.c | 80 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 7 deletions(-) diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 1356afd..6130d40 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -1853,12 +1853,33 @@ static struct task_struct *pick_earliest_pushable_dl_task(struct rq *rq, int cpu static DEFINE_PER_CPU(cpumask_var_t, local_cpu_mask_dl); +/* + * Find the first CPU in: mask & sd & ~prefer + */ +static int find_cpu(const struct cpumask *mask, + struct sched_domain *sd, + struct sched_domain *prefer) +{ + int cpu; + + for_each_cpu(cpu, mask) { + if (!cpumask_test_cpu(cpu, sched_domain_span(sd))) + continue; + if (prefer && cpumask_test_cpu(cpu, sched_domain_span(prefer))) + continue; + break; + } + + return cpu; +} + static int find_later_rq(struct task_struct *task) { - struct sched_domain *sd; + struct sched_domain *sd, *prefer = NULL; struct cpumask *later_mask = this_cpu_cpumask_var_ptr(local_cpu_mask_dl); int this_cpu = smp_processor_id(); int cpu = task_cpu(task); + int fallback_cpu = -1; /* Make sure the mask is initialized first */ if (unlikely(!later_mask)) @@ -1910,15 +1931,37 @@ static int find_later_rq(struct task_struct *task) return this_cpu; } - best_cpu = cpumask_first_and(later_mask, - sched_domain_span(sd)); /* - * Last chance: if a CPU being in both later_mask - * and current sd span is valid, that becomes our - * choice. Of course, the latest possible CPU is - * already under consideration through later_mask. + * If a CPU exists that is in the later_mask and + * the current sd span, but not in the prefer sd + * span, then that becomes our choice. + * + * Of course, the latest possible CPU is already + * under consideration through later_mask. */ + best_cpu = find_cpu(later_mask, sd, prefer); + if (best_cpu < nr_cpu_ids) { + /* + * If current domain is SD_PREFER_SIBLING + * flaged, we have to try to check other + * siblings first. + */ + if (sd->flags & SD_PREFER_SIBLING) { + prefer = sd; + + /* + * fallback_cpu should be one + * in the closest domain among + * SD_PREFER_SIBLING domains, + * in case that more than one + * SD_PREFER_SIBLING domains + * exist in the hierachy. + */ + if (fallback_cpu == -1) + fallback_cpu = best_cpu; + continue; + } rcu_read_unlock(); return best_cpu; } @@ -1927,6 +1970,29 @@ static int find_later_rq(struct task_struct *task) rcu_read_unlock(); /* + * If fallback_cpu is valid, all our guesses failed *except* for + * SD_PREFER_SIBLING domain. Now, we can return the fallback CPU. + * + * XXX: Consider the following example, 4 cores SMT2 system: + * + * LLC [0 - 7] + * SMT [0 1][2 3][4 5][6 7] + * o x o x x x x x + * + * where 'o': occupied and 'x': empty. + * + * A wakeup on CPU0 will exclude CPU1 and choose CPU3, since + * CPU1 is in a SD_PREFER_SIBLING sd and CPU3 is not. However, + * in this case, CPU4 would have been a better choice, since + * CPU3 is a (SMT) thread of an already loaded core. + * + * Doing it 'right' is difficult and expensive. The current + * solution is an acceptable approximation. + */ + if (fallback_cpu != -1) + return fallback_cpu; + + /* * At this point, all our guesses failed, we just return * 'something', and let the caller sort the things out. */ -- 1.9.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [RESEND PATCH v12 1/2] sched/deadline: Add support for SD_PREFER_SIBLING on find_later_rq() 2018-06-18 4:58 ` [RESEND PATCH v12 1/2] sched/deadline: Add support for SD_PREFER_SIBLING on find_later_rq() Byungchul Park @ 2018-06-18 21:36 ` Steven Rostedt 0 siblings, 0 replies; 8+ messages in thread From: Steven Rostedt @ 2018-06-18 21:36 UTC (permalink / raw) To: Byungchul Park Cc: peterz, mingo, tglx, raistlin, linux-kernel, juri.lelli, bristot, kernel-team, joel On Mon, 18 Jun 2018 13:58:08 +0900 Byungchul Park <byungchul.park@lge.com> wrote: > Hello Juri, > > I've changed the code a little bit to avoid a compile warning caused by > 'const' args of find_cpu(). Can I keep your Acked-by? > > BEFORE: > static int find_cpu(const struct cpumask *mask, > const struct sched_domain *sd, > const struct sched_domain *prefer) > > AFTER: > static int find_cpu(const struct cpumask *mask, > struct sched_domain *sd, > struct sched_domain *prefer) > Instead of doing that, why not fix sched_domain_span() to take a constant. There's no reason that function should be modifying the sched_domain. -- Steve > (I temporarily removed the Acked-by you gave me.) > Acked-by: Juri Lelli <juri.lelli@arm.com> > > -----8<----- > >From 5a4753e8c15369420a16fa04026f74ae5c9d377c Mon Sep 17 00:00:00 2001 > From: Byungchul Park <byungchul.park@lge.com> > Date: Mon, 4 Jun 2018 16:46:56 +0900 > Subject: [RESEND PATCH v12 1/2] sched/deadline: Add support for SD_PREFER_SIBLING on > find_later_rq() > > It would be better to try to check other siblings first if > SD_PREFER_SIBLING is flaged when pushing tasks - migration. > > Suggested-by: Peter Zijlstra <peterz@infradead.org> > Signed-off-by: Byungchul Park <byungchul.park@lge.com> > --- > kernel/sched/deadline.c | 80 ++++++++++++++++++++++++++++++++++++++++++++----- > 1 file changed, 73 insertions(+), 7 deletions(-) > > diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c > index 1356afd..6130d40 100644 > --- a/kernel/sched/deadline.c > +++ b/kernel/sched/deadline.c > @@ -1853,12 +1853,33 @@ static struct task_struct *pick_earliest_pushable_dl_task(struct rq *rq, int cpu > > static DEFINE_PER_CPU(cpumask_var_t, local_cpu_mask_dl); > > +/* > + * Find the first CPU in: mask & sd & ~prefer > + */ > +static int find_cpu(const struct cpumask *mask, > + struct sched_domain *sd, > + struct sched_domain *prefer) > +{ > + int cpu; > + > + for_each_cpu(cpu, mask) { > + if (!cpumask_test_cpu(cpu, sched_domain_span(sd))) > + continue; > + if (prefer && cpumask_test_cpu(cpu, sched_domain_span(prefer))) > + continue; > + break; > + } > + > + return cpu; > +} > + > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [RESEND PATCH v12 2/2] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() 2018-06-18 4:58 [RESEND PATCH v12 0/2] Make find_later_rq() choose a closer cpu in topology Byungchul Park 2018-06-18 4:58 ` [RESEND PATCH v12 1/2] sched/deadline: Add support for SD_PREFER_SIBLING on find_later_rq() Byungchul Park @ 2018-06-18 4:58 ` Byungchul Park 2018-06-18 21:42 ` Steven Rostedt 1 sibling, 1 reply; 8+ messages in thread From: Byungchul Park @ 2018-06-18 4:58 UTC (permalink / raw) To: peterz, mingo, rostedt Cc: tglx, raistlin, linux-kernel, juri.lelli, bristot, kernel-team, joel Hello Steven, I've changed the code a little bit to avoid a compile warning caused by 'const' args of find_cpu(). Can I keep your Reviewed-by? BEFORE: static int find_cpu(const struct cpumask *mask, const struct sched_domain *sd, const struct sched_domain *prefer) AFTER: static int find_cpu(const struct cpumask *mask, struct sched_domain *sd, struct sched_domain *prefer) (I temporarily removed the Reviewed-by you gave me.) Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> -----8<----- From 205b197043085947ae30cd939bc12e436c328fe5 Mon Sep 17 00:00:00 2001 From: Byungchul Park <byungchul.park@lge.com> Date: Mon, 4 Jun 2018 16:47:45 +0900 Subject: [RESEND PATCH v12 2/2] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() It would be better to try to check other siblings first if SD_PREFER_SIBLING is flaged when pushing tasks - migration. Suggested-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Byungchul Park <byungchul.park@lge.com> --- kernel/sched/rt.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index ef3c4e6..b2aff1a 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1623,12 +1623,33 @@ static struct task_struct *pick_highest_pushable_task(struct rq *rq, int cpu) static DEFINE_PER_CPU(cpumask_var_t, local_cpu_mask); +/* + * Find the first CPU in: mask & sd & ~prefer + */ +static int find_cpu(const struct cpumask *mask, + struct sched_domain *sd, + struct sched_domain *prefer) +{ + int cpu; + + for_each_cpu(cpu, mask) { + if (!cpumask_test_cpu(cpu, sched_domain_span(sd))) + continue; + if (prefer && cpumask_test_cpu(cpu, sched_domain_span(prefer))) + continue; + break; + } + + return cpu; +} + static int find_lowest_rq(struct task_struct *task) { - struct sched_domain *sd; + struct sched_domain *sd, *prefer = NULL; 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)) @@ -1673,9 +1694,37 @@ static int find_lowest_rq(struct task_struct *task) return this_cpu; } - best_cpu = cpumask_first_and(lowest_mask, - sched_domain_span(sd)); + /* + * If a CPU exists that is in the lowest_mask and + * the current sd span, but not in the prefer sd + * span, then that becomes our choice. + * + * Of course, the lowest possible CPU is already + * under consideration through lowest_mask. + */ + best_cpu = find_cpu(lowest_mask, sd, prefer); + if (best_cpu < nr_cpu_ids) { + /* + * If current domain is SD_PREFER_SIBLING + * flaged, we have to try to check other + * siblings first. + */ + if (sd->flags & SD_PREFER_SIBLING) { + prefer = sd; + + /* + * fallback_cpu should be one + * in the closest domain among + * SD_PREFER_SIBLING domains, + * in case that more than one + * SD_PREFER_SIBLING domains + * exist in the hierachy. + */ + if (fallback_cpu == -1) + fallback_cpu = best_cpu; + continue; + } rcu_read_unlock(); return best_cpu; } @@ -1684,6 +1733,29 @@ static int find_lowest_rq(struct task_struct *task) rcu_read_unlock(); /* + * If fallback_cpu is valid, all our guesses failed *except* for + * SD_PREFER_SIBLING domain. Now, we can return the fallback CPU. + * + * XXX: Consider the following example, 4 cores SMT2 system: + * + * LLC [0 - 7] + * SMT [0 1][2 3][4 5][6 7] + * o x o x x x x x + * + * where 'o': occupied and 'x': empty. + * + * A wakeup on CPU0 will exclude CPU1 and choose CPU3, since + * CPU1 is in a SD_PREFER_SIBLING sd and CPU3 is not. However, + * in this case, CPU4 would have been a better choice, since + * CPU3 is a (SMT) thread of an already loaded core. + * + * Doing it 'right' is difficult and expensive. The current + * solution is an acceptable approximation. + */ + 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 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [RESEND PATCH v12 2/2] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() 2018-06-18 4:58 ` [RESEND PATCH v12 2/2] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() Byungchul Park @ 2018-06-18 21:42 ` Steven Rostedt 2018-06-19 5:16 ` Byungchul Park 0 siblings, 1 reply; 8+ messages in thread From: Steven Rostedt @ 2018-06-18 21:42 UTC (permalink / raw) To: Byungchul Park Cc: peterz, mingo, tglx, raistlin, linux-kernel, juri.lelli, bristot, kernel-team, joel On Mon, 18 Jun 2018 13:58:09 +0900 Byungchul Park <byungchul.park@lge.com> wrote: > Hello Steven, > > I've changed the code a little bit to avoid a compile warning caused by > 'const' args of find_cpu(). Can I keep your Reviewed-by? > > BEFORE: > static int find_cpu(const struct cpumask *mask, > const struct sched_domain *sd, > const struct sched_domain *prefer) > > AFTER: > static int find_cpu(const struct cpumask *mask, > struct sched_domain *sd, > struct sched_domain *prefer) > > (I temporarily removed the Reviewed-by you gave me.) > Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> I would fix sched_domain_span() to take a constant and keep the previous patch. -- Steve ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RESEND PATCH v12 2/2] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() 2018-06-18 21:42 ` Steven Rostedt @ 2018-06-19 5:16 ` Byungchul Park 2018-06-20 12:51 ` Byungchul Park 2018-06-26 8:30 ` Byungchul Park 0 siblings, 2 replies; 8+ messages in thread From: Byungchul Park @ 2018-06-19 5:16 UTC (permalink / raw) To: Steven Rostedt Cc: Byungchul Park, Peter Zijlstra, Ingo Molnar, Thomas Gleixner, Dario Faggioli, linux-kernel, Juri Lelli, bristot, kernel-team, Joel Fernandes On Tue, Jun 19, 2018 at 6:42 AM, Steven Rostedt <rostedt@goodmis.org> wrote: > On Mon, 18 Jun 2018 13:58:09 +0900 > Byungchul Park <byungchul.park@lge.com> wrote: > >> Hello Steven, >> >> I've changed the code a little bit to avoid a compile warning caused by >> 'const' args of find_cpu(). Can I keep your Reviewed-by? >> >> BEFORE: >> static int find_cpu(const struct cpumask *mask, >> const struct sched_domain *sd, >> const struct sched_domain *prefer) >> >> AFTER: >> static int find_cpu(const struct cpumask *mask, >> struct sched_domain *sd, >> struct sched_domain *prefer) >> >> (I temporarily removed the Reviewed-by you gave me.) >> Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> > > I would fix sched_domain_span() to take a constant and keep the > previous patch. Right. I also considered it like you and asked it here: https://lkml.org/lkml/2018/1/11/106 But I didn't get any answer so tried to keep sched_domain_span() unchanged conservatively. Peterz, what's your opinion? > > -- Steve -- Thanks, Byungchul ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RESEND PATCH v12 2/2] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() 2018-06-19 5:16 ` Byungchul Park @ 2018-06-20 12:51 ` Byungchul Park 2018-06-26 8:30 ` Byungchul Park 1 sibling, 0 replies; 8+ messages in thread From: Byungchul Park @ 2018-06-20 12:51 UTC (permalink / raw) To: Byungchul Park, peterz, mingo Cc: Steven Rostedt, Peter Zijlstra, Ingo Molnar, Thomas Gleixner, Dario Faggioli, linux-kernel, Juri Lelli, bristot, kernel-team, Joel Fernandes On Tue, Jun 19, 2018 at 02:16:36PM +0900, Byungchul Park wrote: > On Tue, Jun 19, 2018 at 6:42 AM, Steven Rostedt <rostedt@goodmis.org> wrote: > > On Mon, 18 Jun 2018 13:58:09 +0900 > > Byungchul Park <byungchul.park@lge.com> wrote: > > > >> Hello Steven, > >> > >> I've changed the code a little bit to avoid a compile warning caused by > >> 'const' args of find_cpu(). Can I keep your Reviewed-by? > >> > >> BEFORE: > >> static int find_cpu(const struct cpumask *mask, > >> const struct sched_domain *sd, > >> const struct sched_domain *prefer) > >> > >> AFTER: > >> static int find_cpu(const struct cpumask *mask, > >> struct sched_domain *sd, > >> struct sched_domain *prefer) > >> > >> (I temporarily removed the Reviewed-by you gave me.) > >> Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> > > > > I would fix sched_domain_span() to take a constant and keep the > > previous patch. > > Right. I also considered it like you and asked it here: > > https://lkml.org/lkml/2018/1/11/106 > > But I didn't get any answer so tried to keep sched_domain_span() > unchanged conservatively. > > Peterz, what's your opinion? Peterz and Ingo, I cannot progress forward without your opinion. Please your opinion. > > -- Steve > > -- > Thanks, > Byungchul ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RESEND PATCH v12 2/2] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() 2018-06-19 5:16 ` Byungchul Park 2018-06-20 12:51 ` Byungchul Park @ 2018-06-26 8:30 ` Byungchul Park 1 sibling, 0 replies; 8+ messages in thread From: Byungchul Park @ 2018-06-26 8:30 UTC (permalink / raw) To: Byungchul Park Cc: Steven Rostedt, Peter Zijlstra, Ingo Molnar, Thomas Gleixner, Dario Faggioli, linux-kernel, Juri Lelli, bristot, kernel-team, Joel Fernandes On Tue, Jun 19, 2018 at 02:16:36PM +0900, Byungchul Park wrote: > On Tue, Jun 19, 2018 at 6:42 AM, Steven Rostedt <rostedt@goodmis.org> wrote: > > On Mon, 18 Jun 2018 13:58:09 +0900 > > Byungchul Park <byungchul.park@lge.com> wrote: > > > >> Hello Steven, > >> > >> I've changed the code a little bit to avoid a compile warning caused by > >> 'const' args of find_cpu(). Can I keep your Reviewed-by? > >> > >> BEFORE: > >> static int find_cpu(const struct cpumask *mask, > >> const struct sched_domain *sd, > >> const struct sched_domain *prefer) > >> > >> AFTER: > >> static int find_cpu(const struct cpumask *mask, > >> struct sched_domain *sd, > >> struct sched_domain *prefer) > >> > >> (I temporarily removed the Reviewed-by you gave me.) > >> Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> > > > > I would fix sched_domain_span() to take a constant and keep the > > previous patch. > > Right. I also considered it like you and asked it here: > > https://lkml.org/lkml/2018/1/11/106 > > But I didn't get any answer so tried to keep sched_domain_span() > unchanged conservatively. > > Peterz, what's your opinion? Maintainers, Peter and Ingo, I believe it would be OK, even better to change sched_domain_span() itself. But I wonder if you also think so, do you? > > > > -- Steve > > -- > Thanks, > Byungchul ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-06-26 8:31 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-06-18 4:58 [RESEND PATCH v12 0/2] Make find_later_rq() choose a closer cpu in topology Byungchul Park 2018-06-18 4:58 ` [RESEND PATCH v12 1/2] sched/deadline: Add support for SD_PREFER_SIBLING on find_later_rq() Byungchul Park 2018-06-18 21:36 ` Steven Rostedt 2018-06-18 4:58 ` [RESEND PATCH v12 2/2] sched/rt: Add support for SD_PREFER_SIBLING on find_lowest_rq() Byungchul Park 2018-06-18 21:42 ` Steven Rostedt 2018-06-19 5:16 ` Byungchul Park 2018-06-20 12:51 ` Byungchul Park 2018-06-26 8:30 ` Byungchul Park
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.