lkml.org 
[lkml]   [2008]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH/RESEND 1/2] sched: let arch_update_cpu_topology indicate if topology changed
    From: Heiko Carstens <heiko.carstens@de.ibm.com>

    Change arch_update_cpu_topology so it returns 1 if the cpu topology changed
    and 0 if it didn't change. This will be useful for the next patch which adds
    a call to this function in partition_sched_domains.

    Cc: Max Krasnyansky <maxk@qualcomm.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    ---
    arch/s390/kernel/topology.c | 5 +++--
    include/linux/topology.h | 2 +-
    kernel/sched.c | 8 +++++++-
    3 files changed, 11 insertions(+), 4 deletions(-)

    Index: linux-2.6/kernel/sched.c
    ===================================================================
    --- linux-2.6.orig/kernel/sched.c
    +++ linux-2.6/kernel/sched.c
    @@ -7712,8 +7712,14 @@ static struct sched_domain_attr *dattr_c
    */
    static cpumask_t fallback_doms;

    -void __attribute__((weak)) arch_update_cpu_topology(void)
    +/*
    + * arch_update_cpu_topology lets virtualized architectures update the
    + * cpu core maps. It is supposed to return 1 if the topology changed
    + * or 0 if it stayed the same.
    + */
    +int __attribute__((weak)) arch_update_cpu_topology(void)
    {
    + return 0;
    }

    /*
    Index: linux-2.6/arch/s390/kernel/topology.c
    ===================================================================
    --- linux-2.6.orig/arch/s390/kernel/topology.c
    +++ linux-2.6/arch/s390/kernel/topology.c
    @@ -212,7 +212,7 @@ static void update_cpu_core_map(void)
    cpu_core_map[cpu] = cpu_coregroup_map(cpu);
    }

    -void arch_update_cpu_topology(void)
    +int arch_update_cpu_topology(void)
    {
    struct tl_info *info = tl_info;
    struct sys_device *sysdev;
    @@ -221,7 +221,7 @@ void arch_update_cpu_topology(void)
    if (!machine_has_topology) {
    update_cpu_core_map();
    topology_update_polarization_simple();
    - return;
    + return 0;
    }
    stsi(info, 15, 1, 2);
    tl_to_cores(info);
    @@ -230,6 +230,7 @@ void arch_update_cpu_topology(void)
    sysdev = get_cpu_sysdev(cpu);
    kobject_uevent(&sysdev->kobj, KOBJ_CHANGE);
    }
    + return 1;
    }

    static void topology_work_fn(struct work_struct *work)
    Index: linux-2.6/include/linux/topology.h
    ===================================================================
    --- linux-2.6.orig/include/linux/topology.h
    +++ linux-2.6/include/linux/topology.h
    @@ -49,7 +49,7 @@
    for_each_online_node(node) \
    if (nr_cpus_node(node))

    -void arch_update_cpu_topology(void);
    +int arch_update_cpu_topology(void);

    /* Conform to ACPI 2.0 SLIT distance definitions */
    #define LOCAL_DISTANCE 10
    --


    \
     
     \ /
      Last update: 2008-12-15 15:55    [W:4.056 / U:0.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site