lkml.org 
[lkml]   [2016]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 06/13] sched/core: Pass child domain into sd_init
    Date
    If behavioural sched_domain flags depend on topology flags set at higher
    domain levels we need a way to update the child domain flags. Moving the
    child pointer assignment inside sd_init() should make that possible.

    cc: Ingo Molnar <mingo@redhat.com>
    cc: Peter Zijlstra <peterz@infradead.org>

    Signed-off-by: Morten Rasmussen <morten.rasmussen@arm.com>
    ---
    kernel/sched/core.c | 7 ++++---
    1 file changed, 4 insertions(+), 3 deletions(-)

    diff --git a/kernel/sched/core.c b/kernel/sched/core.c
    index 1a22fc9e3788..ec3f7aef321f 100644
    --- a/kernel/sched/core.c
    +++ b/kernel/sched/core.c
    @@ -6351,7 +6351,8 @@ static int sched_domains_curr_level;
    SD_SHARE_POWERDOMAIN)

    static struct sched_domain *
    -sd_init(struct sched_domain_topology_level *tl, int cpu)
    +sd_init(struct sched_domain_topology_level *tl,
    + struct sched_domain *child, int cpu)
    {
    struct sched_domain *sd = *per_cpu_ptr(tl->data.sd, cpu);
    int sd_weight, sd_flags = 0;
    @@ -6403,6 +6404,7 @@ sd_init(struct sched_domain_topology_level *tl, int cpu)
    .smt_gain = 0,
    .max_newidle_lb_cost = 0,
    .next_decay_max_lb_cost = jiffies,
    + .child = child,
    #ifdef CONFIG_SCHED_DEBUG
    .name = tl->name,
    #endif
    @@ -6827,14 +6829,13 @@ struct sched_domain *build_sched_domain(struct sched_domain_topology_level *tl,
    const struct cpumask *cpu_map, struct sched_domain_attr *attr,
    struct sched_domain *child, int cpu)
    {
    - struct sched_domain *sd = sd_init(tl, cpu);
    + struct sched_domain *sd = sd_init(tl, child, cpu);

    cpumask_and(sched_domain_span(sd), cpu_map, tl->mask(cpu));
    if (child) {
    sd->level = child->level + 1;
    sched_domain_level_max = max(sched_domain_level_max, sd->level);
    child->parent = sd;
    - sd->child = child;

    if (!cpumask_subset(sched_domain_span(child),
    sched_domain_span(sd))) {
    --
    1.9.1
    \
     
     \ /
      Last update: 2016-07-25 16:21    [W:5.236 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site