lkml.org 
[lkml]   [2004]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patches in this message
    /
    Date
    From
    Subject[PATCH mask 6/15] nonsmp-cpu-present-map
    Fix build breakage if CONFIG_SMP disabled, in Ashok's cpuhotplog
    patches in init/main.c routine fixup_cpu_present_map().

    Make cpu_present_map a real map for all configurations,
    instead of a constant for non-SMP. Also move the definition
    of cpu_present_map out of kernel/cpu.c into kernel/sched.c,
    because cpu.c isn't compiled into non-SMP kernels.

    ============= include/linux/cpumask.h =============

    --- 2.6.6-rc3-mm2-old/include/linux/cpumask.h 2004-05-06 04:22:43.000000000 -0700
    +++ 2.6.6-rc3-mm2/include/linux/cpumask.h 2004-05-06 03:30:32.000000000 -0700
    @@ -10,15 +10,12 @@

    extern cpumask_t cpu_online_map;
    extern cpumask_t cpu_possible_map;
    -extern cpumask_t cpu_present_map;

    #define num_online_cpus() cpus_weight(cpu_online_map)
    #define num_possible_cpus() cpus_weight(cpu_possible_map)
    -#define num_present_cpus() cpus_weight(cpu_present_map)

    #define cpu_online(cpu) cpu_isset(cpu, cpu_online_map)
    #define cpu_possible(cpu) cpu_isset(cpu, cpu_possible_map)
    -#define cpu_present(cpu) cpu_isset(cpu, cpu_present_map)

    #define for_each_cpu_mask(cpu, mask) \
    for (cpu = first_cpu_const(mk_cpumask_const(mask)); \
    @@ -27,25 +24,25 @@ extern cpumask_t cpu_present_map;

    #define for_each_cpu(cpu) for_each_cpu_mask(cpu, cpu_possible_map)
    #define for_each_online_cpu(cpu) for_each_cpu_mask(cpu, cpu_online_map)
    -#define for_each_present_cpu(cpu) for_each_cpu_mask(cpu, cpu_present_map)
    #else
    #define cpu_online_map cpumask_of_cpu(0)
    #define cpu_possible_map cpumask_of_cpu(0)
    -#define cpu_present_map cpumask_of_cpu(0)

    #define num_online_cpus() 1
    #define num_possible_cpus() 1
    -#define num_present_cpus() 1

    #define cpu_online(cpu) ({ BUG_ON((cpu) != 0); 1; })
    #define cpu_possible(cpu) ({ BUG_ON((cpu) != 0); 1; })
    -#define cpu_present(cpu) ({ BUG_ON((cpu) != 0); 1; })

    #define for_each_cpu(cpu) for (cpu = 0; cpu < 1; cpu++)
    #define for_each_online_cpu(cpu) for (cpu = 0; cpu < 1; cpu++)
    -#define for_each_present_cpu(cpu) for (cpu = 0; cpu < 1; cpu++)
    #endif

    +extern cpumask_t cpu_present_map;
    +#define num_present_cpus() cpus_weight(cpu_present_map)
    +#define cpu_present(cpu) cpu_isset(cpu, cpu_present_map)
    +#define for_each_present_cpu(cpu) for_each_cpu_mask(cpu, cpu_present_map)
    +
    #define cpumask_scnprintf(buf, buflen, map) \
    bitmap_scnprintf(buf, buflen, cpus_addr(map), NR_CPUS)

    ============= kernel/cpu.c =============
    --- 2.6.6-rc3-mm2-old/kernel/cpu.c 2004-05-06 04:22:43.000000000 -0700
    +++ 2.6.6-rc3-mm2/kernel/cpu.c 2004-05-06 01:07:27.000000000 -0700
    @@ -20,14 +20,6 @@
    DECLARE_MUTEX(cpucontrol);

    static struct notifier_block *cpu_chain;
    -/*
    - * Represents all cpu's present in the system
    - * In systems capable of hotplug, this map could dynamically grow
    - * as new cpu's are detected in the system via any platform specific
    - * method, such as ACPI for e.g.
    - */
    -cpumask_t cpu_present_map;
    -EXPORT_SYMBOL(cpu_present_map);

    /* Need to know about CPUs going up/down? */
    int register_cpu_notifier(struct notifier_block *nb)
    ============= kernel/sched.c =============
    --- 2.6.6-rc3-mm2-old/kernel/sched.c 2004-05-06 04:22:43.000000000 -0700
    +++ 2.6.6-rc3-mm2/kernel/sched.c 2004-05-06 03:30:35.000000000 -0700
    @@ -3052,6 +3052,16 @@ out_unlock:
    return retval;
    }

    +/*
    + * Represents all cpu's present in the system
    + * In systems capable of hotplug, this map could dynamically grow
    + * as new cpu's are detected in the system via any platform specific
    + * method, such as ACPI for e.g.
    + */
    +
    +cpumask_t cpu_present_map;
    +EXPORT_SYMBOL(cpu_present_map);
    +
    /**
    * sys_sched_setaffinity - set the cpu affinity of a process
    * @pid: pid of the process

    --
    I won't rest till it's the best ...
    Programmer, Linux Scalability
    Paul Jackson <pj@sgi.com> 1.650.933.1373
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:02    [W:0.026 / U:29.296 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site