lkml.org 
[lkml]   [2015]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5/6] x86: replace cpu_**_mask() with topology_**_cpumask()
    Date
    The former duplicate the functionalities of the latter but are neither
    documented nor arch-independent.

    Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    ---
    arch/x86/kernel/cpu/proc.c | 5 +++--
    arch/x86/kernel/smpboot.c | 40 ++++++++++++++++++++--------------------
    arch/x86/kernel/tsc_sync.c | 3 +--
    3 files changed, 24 insertions(+), 24 deletions(-)

    diff --git a/arch/x86/kernel/cpu/proc.c b/arch/x86/kernel/cpu/proc.c
    index e7d8c76..3bb8de0 100644
    --- a/arch/x86/kernel/cpu/proc.c
    +++ b/arch/x86/kernel/cpu/proc.c
    @@ -1,8 +1,8 @@
    -#include <linux/smp.h>
    #include <linux/timex.h>
    #include <linux/string.h>
    #include <linux/seq_file.h>
    #include <linux/cpufreq.h>
    +#include <linux/topology.h>

    /*
    * Get CPU information for use by the procfs.
    @@ -12,7 +12,8 @@ static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c,
    {
    #ifdef CONFIG_SMP
    seq_printf(m, "physical id\t: %d\n", c->phys_proc_id);
    - seq_printf(m, "siblings\t: %d\n", cpumask_weight(cpu_core_mask(cpu)));
    + seq_printf(m, "siblings\t: %d\n",
    + cpumask_weight(topology_core_cpumask(cpu)));
    seq_printf(m, "core id\t\t: %d\n", c->cpu_core_id);
    seq_printf(m, "cpu cores\t: %d\n", c->booted_cores);
    seq_printf(m, "apicid\t\t: %d\n", c->apicid);
    diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
    index 50e547e..085ff2e 100644
    --- a/arch/x86/kernel/smpboot.c
    +++ b/arch/x86/kernel/smpboot.c
    @@ -42,7 +42,6 @@
    #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

    #include <linux/init.h>
    -#include <linux/smp.h>
    #include <linux/module.h>
    #include <linux/sched.h>
    #include <linux/percpu.h>
    @@ -314,10 +313,10 @@ topology_sane(struct cpuinfo_x86 *c, struct cpuinfo_x86 *o, const char *name)
    cpu1, name, cpu2, cpu_to_node(cpu1), cpu_to_node(cpu2));
    }

    -#define link_mask(_m, c1, c2) \
    +#define link_mask(mfunc, c1, c2) \
    do { \
    - cpumask_set_cpu((c1), cpu_##_m##_mask(c2)); \
    - cpumask_set_cpu((c2), cpu_##_m##_mask(c1)); \
    + cpumask_set_cpu((c1), mfunc(c2)); \
    + cpumask_set_cpu((c2), mfunc(c1)); \
    } while (0)

    static bool match_smt(struct cpuinfo_x86 *c, struct cpuinfo_x86 *o)
    @@ -398,9 +397,9 @@ void set_cpu_sibling_map(int cpu)
    cpumask_set_cpu(cpu, cpu_sibling_setup_mask);

    if (!has_mp) {
    - cpumask_set_cpu(cpu, cpu_sibling_mask(cpu));
    + cpumask_set_cpu(cpu, topology_thread_cpumask(cpu));
    cpumask_set_cpu(cpu, cpu_llc_shared_mask(cpu));
    - cpumask_set_cpu(cpu, cpu_core_mask(cpu));
    + cpumask_set_cpu(cpu, topology_core_cpumask(cpu));
    c->booted_cores = 1;
    return;
    }
    @@ -409,10 +408,10 @@ void set_cpu_sibling_map(int cpu)
    o = &cpu_data(i);

    if ((i == cpu) || (has_smt && match_smt(c, o)))
    - link_mask(sibling, cpu, i);
    + link_mask(topology_thread_cpumask, cpu, i);

    if ((i == cpu) || (has_mp && match_llc(c, o)))
    - link_mask(llc_shared, cpu, i);
    + link_mask(cpu_llc_shared_mask, cpu, i);

    }

    @@ -424,17 +423,18 @@ void set_cpu_sibling_map(int cpu)
    o = &cpu_data(i);

    if ((i == cpu) || (has_mp && match_die(c, o))) {
    - link_mask(core, cpu, i);
    + link_mask(topology_core_cpumask, cpu, i);

    /*
    * Does this new cpu bringup a new core?
    */
    - if (cpumask_weight(cpu_sibling_mask(cpu)) == 1) {
    + if (cpumask_weight(topology_thread_cpumask(cpu)) == 1) {
    /*
    * for each core in package, increment
    * the booted_cores for this new cpu
    */
    - if (cpumask_first(cpu_sibling_mask(i)) == i)
    + if (cpumask_first(
    + topology_thread_cpumask(i)) == i)
    c->booted_cores++;
    /*
    * increment the core count for all
    @@ -1009,8 +1009,8 @@ static __init void disable_smp(void)
    physid_set_mask_of_physid(boot_cpu_physical_apicid, &phys_cpu_present_map);
    else
    physid_set_mask_of_physid(0, &phys_cpu_present_map);
    - cpumask_set_cpu(0, cpu_sibling_mask(0));
    - cpumask_set_cpu(0, cpu_core_mask(0));
    + cpumask_set_cpu(0, topology_thread_cpumask(0));
    + cpumask_set_cpu(0, topology_core_cpumask(0));
    }

    enum {
    @@ -1293,22 +1293,22 @@ static void remove_siblinginfo(int cpu)
    int sibling;
    struct cpuinfo_x86 *c = &cpu_data(cpu);

    - for_each_cpu(sibling, cpu_core_mask(cpu)) {
    - cpumask_clear_cpu(cpu, cpu_core_mask(sibling));
    + for_each_cpu(sibling, topology_core_cpumask(cpu)) {
    + cpumask_clear_cpu(cpu, topology_core_cpumask(sibling));
    /*/
    * last thread sibling in this cpu core going down
    */
    - if (cpumask_weight(cpu_sibling_mask(cpu)) == 1)
    + if (cpumask_weight(topology_thread_cpumask(cpu)) == 1)
    cpu_data(sibling).booted_cores--;
    }

    - for_each_cpu(sibling, cpu_sibling_mask(cpu))
    - cpumask_clear_cpu(cpu, cpu_sibling_mask(sibling));
    + for_each_cpu(sibling, topology_thread_cpumask(cpu))
    + cpumask_clear_cpu(cpu, topology_thread_cpumask(sibling));
    for_each_cpu(sibling, cpu_llc_shared_mask(cpu))
    cpumask_clear_cpu(cpu, cpu_llc_shared_mask(sibling));
    cpumask_clear(cpu_llc_shared_mask(cpu));
    - cpumask_clear(cpu_sibling_mask(cpu));
    - cpumask_clear(cpu_core_mask(cpu));
    + cpumask_clear(topology_thread_cpumask(cpu));
    + cpumask_clear(topology_core_cpumask(cpu));
    c->phys_proc_id = 0;
    c->cpu_core_id = 0;
    cpumask_clear_cpu(cpu, cpu_sibling_setup_mask);
    diff --git a/arch/x86/kernel/tsc_sync.c b/arch/x86/kernel/tsc_sync.c
    index 2648848..1d78586 100644
    --- a/arch/x86/kernel/tsc_sync.c
    +++ b/arch/x86/kernel/tsc_sync.c
    @@ -16,7 +16,6 @@
    */
    #include <linux/spinlock.h>
    #include <linux/kernel.h>
    -#include <linux/smp.h>
    #include <linux/nmi.h>
    #include <asm/tsc.h>

    @@ -113,7 +112,7 @@ static void check_tsc_warp(unsigned int timeout)
    */
    static inline unsigned int loop_timeout(int cpu)
    {
    - return (cpumask_weight(cpu_core_mask(cpu)) > 1) ? 2 : 20;
    + return (cpumask_weight(topology_core_cpumask(cpu)) > 1) ? 2 : 20;
    }

    /*
    --
    2.1.4


    \
     
     \ /
      Last update: 2015-04-30 12:21    [W:3.970 / U:0.536 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site