lkml.org 
[lkml]   [2017]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v8 0/2] Make find_later_rq() choose a closer cpu in topology
Date
Thanks to Joel, I could fix a typo and simplify code more.

-----8<-----

When cpudl_find() returns any among free_cpus, the cpu might not be
closer than others, considering sched domain. For example:

this_cpu: 15
free_cpus: 0, 1,..., 14 (== later_mask)
best_cpu: 0

topology:

0 --+
+--+
1 --+ |
+-- ... --+
2 --+ | |
+--+ |
3 --+ |

... ...

12 --+ |
+--+ |
13 --+ | |
+-- ... -+
14 --+ |
+--+
15 --+

In this case, it would be best to select 14 since it's a free cpu and
closest to 15(this_cpu). However, currently the code select 0(best_cpu)
even though that's just any among free_cpus. Fix it.

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 | 55 +++++++++++++++++++++++++++++++++++++++++++++---
kernel/sched/rt.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 105 insertions(+), 6 deletions(-)

--
1.9.1

\
 
 \ /
  Last update: 2017-08-18 10:23    [W:0.083 / U:9.728 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site